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