• selenium自动化脚本报错总结


    1.alert弹框

    alert = driver.switch_to.alert()
    TypeError: 'Alert' object is not callable#对象不可调用

    对象不能用函数形式调用,就是不能callable。 此类错误一般是由于内部函数被用作变量名时发生。

    正确用法:alert作为@property使用。

    alert = driver.switch_to.alert

     2.进行file文件上传引入win32gui报错

    1)下载好pywin32

    2)设置PYTHONPATH为:D:\Python34\Lib\site-packages

    3)重启pycharm,重新导入即可。

    3.在做selenium web页面的跳转,当页面发生变化时,一定要注意等待时间的设置。
       如果在执行过程中,出现元素不存在或者未找到,或者执行结束未报错,首先考虑是否进行等待时间的设置。

      若等待时间添加了,看是否该元素在iframe中,如果在,直接定位是定位不到的,必须切换到iframe,再定位。

    4.WebDriverException: Message: unknown error: Chrome failed to start: crashed

    解决办法:谷歌版本过低,下载一个最新版本,同时更新driver驱动版本为相对应的版本即可。

    5.添加cookie操作时,WebDriverException:会出现报错为:Message: unable to set cookie。报错信息如下

    Traceback (most recent call last):
      File "D:/python_workshop/python6/selenium_webdriver/add_cookies的使用(二).py", line 9, in <module>
        driver.add_cookie(cookie_dict=cookies)
      File "D:\Program\python34\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 872, in add_cookie
        self.execute(Command.ADD_COOKIE, {'cookie': cookie_dict})
      File "D:\Program\python34\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 312, in execute
        self.error_handler.check_response(response)
      File "D:\Program\python34\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
        raise exception_class(message, screen, stacktrace)
    selenium.common.exceptions.WebDriverException: Message: unable to set cookie
      (Session info: chrome=66.0.3359.139)
      (Driver info: chromedriver=2.35.528161 (5b82f2d2aae0ca24b877009200ced9065a772e73),platform=Windows NT 6.1.7600 x86_64)

     解决方法:参考文档--https://www.cnblogs.com/CoolJayson/p/7421013.html

                    需要在driver.add_cookie()前加上driver1.get("url地址")。

                   必须首先加载网站,这样Selenium 才能知道cookie 属于哪个网站,即使加载网站的行为对我们没任何用处。如下代码加粗部分。

    driver1 = webdriver.Chrome()
    driver1.maximize_window()
    cookie2 = {"name":"BDUSS","value":"UJJTH5rcE9qd1VsWDZ5SzFsQkJVZUVPZTMwRi05bzg4UDE5YXJYZDAzNklkRzViQVFBQUFBJCQAAAAAAAAAAAEAAADzdT9HTGlseTAyNTE4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIjnRluI50Zbe"}
    cookie3 = {"name":"BAIDUID","value":"F513A1C2ADA0A19C868F711C1792A3D0"}
    driver1.get("https://passport.baidu.com/center")
    #将获取的两个cookie都添加上
    driver1.add_cookie(cookie2)
    driver1.add_cookie(cookie3)

    6.selenium加入单元测试pytest后,提示:Empty test suite.

    D:\Python34\python.exe "D:\Program Files (x86)\JetBrains\PyCharm Community Edition 3.4.4\helpers\pycharm\utrunner.py" E:\aaa\python\web_API\QCD_webFramework\pytest_TestCases\test_login_fixture.py true
    Testing started at 16:03 ...
    
    Process finished with exit code 0
    Empty test suite

    解决办法:网上一部分百度说是,在setting设置,如下。我设置后运行还是之前的错误

    然后又再次点击“Edit Configurations”

     

    进入如下界面,添加一个py.test

     填入name,写上路径,点击apply->点击ok

     

    在右上角选中选中刚刚配置的name名字,然后点击run,即可。

  • 相关阅读:
    恶意代码分析
    免杀原理与实践
    GIT安装及IDEA配置(GIT)
    Idea导入本地Mavenue项目
    Redis在linux安装部署(单机版)
    python数据科学导论--读书笔记01
    廖雪峰Python3 学习笔记--切片、迭代、列表生成式、生成器、迭代器
    廖雪峰Python3 学习笔记--函数参数(默认参数、可变参数、关键字参数)
    廖雪峰Python3 学习笔记--编码
    廖雪峰Python3 学习笔记--变量常量
  • 原文地址:https://www.cnblogs.com/xiaoxiaolvdou/p/9276466.html
Copyright © 2020-2023  润新知