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缺少属性:

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

     

  • 相关阅读:
    让自己的网站或博客被百度收录的小技巧
    Linux cp一个文件夹时提示cp: omitting directory `test/'
    svn checkout 提示“由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。”解决方法
    Linux iptables开放特定端口
    CentOS7使用iptables防火墙开放端口
    Linux平台的SVN服务器的配置及搭建
    官网svn提交到代码库,但是不能同步到web目录
    【LINUX】SVN 代码提交之后。同步到web目录下
    React Native For Android 架构初探
    腾讯QQ会员技术团队:以手机QQ会员H5加速为例,为你揭开sonic技术内幕
  • 原文地址:https://www.cnblogs.com/lp475177107/p/11221458.html
Copyright © 2011-2022 走看看