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,即可。

原文地址:https://www.cnblogs.com/xiaoxiaolvdou/p/9276466.html