zoukankan      html  css  js  c++  java
  • 常见问题总结

    python写法:

        def SwitchHandle(self):
            '''
            切换窗口
            '''
            windows = self.driver.window_handles
            self.driver.switch_to.window(windows[-1])

    滑动页面:

        def ScrollPage(self,num):
            '''
            滚动屏幕
            '''
            self.driver.execute_script('document.documentElement.scrollTop={0}'.format(num))

    selenium 弹窗处理

    1. alert 这种类型的处理方式多用

    driver.switch_to.alert方法
    晚上的大把都是说的这种方法.

    2. 自定义 JS 弹窗

    大多数的网页多采用的这种方式,如百度:

     

    这种方式其实也能够通过,selenium 的查找方式找到的,不过要给我们的程序一定的“缓冲时间”

    # 点击登陆按钮

    driver.find_element_by_id("login").click()

    # 弹窗出现后,显示的等待几秒钟

    sleep(2)  

    # 获取弹窗中的元素,并点击

    driver.find_element_by_class_name("confirm").click()

    3. 设置display属性为none

    详见 : https://blog.csdn.net/real_tino/article/details/59068827

    第一:没有全屏模式,出现了其他按钮的遮挡

    解决方案是:

    driver.maximize_window()

    第二:滑屏出现了问题

    我参考的这一篇文章:selenium_通过selenium控制浏览器滚动条

    里面的方法我都实验了一遍   不知道为什么 效果不理想

    最後花錢找人解決了問題

    driver.execute_script('document.documentElement.scrollTop={0}'.format(9000))

    一條金貴的代碼

    最後附上代碼  實現翻頁  

    import time

    from seleniumimport webdriver

    chrome_options = webdriver.ChromeOptions()

    chrome_options.add_argument('--headless')

    chrome_options.add_argument('--disable-gpu')

    chrome_options.add_argument("'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'")

    driver = webdriver.Chrome(chrome_options=chrome_options)

    driver.get("http://www.mafengwo.cn/poi/5430915.html")

    driver.maximize_window()

    driver.find_element_by_xpath('//a[@title="蜂蜂点评"]').click()

    driver.get_screenshot_as_file(r'C:UsersweiduPycharmProjectsday21pachong estdianping.png')

    # driver.execute_script("window.scrollBy(0,100000)")

    driver.get_screenshot_as_file(r'C:UsersweiduPycharmProjectsday21pachong estfanye.png')

    driver.implicitly_wait(10)

    # driver.switch_to.frame(0)

    for _in range(5):

    driver.execute_script('document.documentElement.scrollTop={0}'.format(9000))

    time.sleep(1)

    driver.find_element_by_xpath("//*[text()='后一页']").click()

     

    返回按钮状态,布尔型:

        def GetAddBtn(self):
            '''
            获取优先出借的我要加入按钮的状态
            '''
            addbtn=self.bcfunc.FindElement("Xpath", "//input[@name='submitBtn']")
            return addbtn.is_enabled()
            addbtn = self.prority.GetAddBtn()
            self.assertEqual(addbtn,False,"按钮是可点击状态")

    解决引用该类时报错问题:

    import sys
    import os
    curPath = os.path.abspath(os.path.dirname(__file__))
    rootPath = os.path.split(curPath)[0]
    sys.path.append(rootPath)

    变量值取开始到倒数第二位,取到后转为float型,保留2位小数,打印数据类型:

        remprice=self.prority.GetRemainPrice() 
        print(remprice[:-1])
        remprice=float(remprice[:-1])
        remprice = Decimal(remprice).quantize(Decimal('0.00'))
        print(remprice)
        print(type(remprice))

    IndexError: list index out of range 的原因有两种:

    第一种情况: index越界 

    第二种情况:列表为空

    单独写一个test.py文件执行没问题,但是在TestCase中写就会报上一层的WangCaiOperations缺少属性:

     解决方法:在操作类中引用该包,引用后实例化并且传所需参数,之后业务层、用例层调用该方法:

     

  • 相关阅读:
    Databases Questions & Answers
    SQL语句
    常见的数据库基础面试题大全
    关于GET POST
    经常遇到的浏览器兼容性问题
    关于JavaScript中apply与call的用法意义及区别(转)
    js闭包的用途
    深入理解js闭包
    undefined与null的区别
    HeapSort快速排序
  • 原文地址:https://www.cnblogs.com/lp475177107/p/11221458.html
Copyright © 2011-2022 走看看