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

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Selenium自动化本是一种通过使用Selenium WebDriver模块来自动化执行浏览器操作的本。可以使用Selenium来模拟用户在浏览器中的行为,例如打开网页、填写表单、点击按钮等。 要实现一个简单的Selenium自动化示例,需要以下步骤: 1. 导入Selenium WebDriver模块 2. 创建驱动浏览器对象并启动浏览器 3. 编写自动化执行步骤,例如最大化窗口、打开指定网页、清空文本框、输入内容、点击按钮等 4. 在完成自动化操作后,关闭驱动对象 在Python中,可以使用Selenium WebDriver模块来实现这些步骤。首先需要导入Selenium WebDriver模块,然后可以创建一个浏览器驱动对象,例如使用Firefox浏览器驱动。接下来,可以使用驱动对象执行各种自动化步骤,例如最大化窗口、打开指定网页、清空文本框、输入内容、点击按钮等。最后,可以使用.quit()方法关闭驱动对象。 下面是一个示例代码: ```python # step1: 导入Selenium WebDriver模块 from selenium import webdriver import time # step2: 创建驱动浏览器对象并启动浏览器 driver = webdriver.Firefox() # step3: 编写自动化执行步骤 driver.maximize_window() # 最大化窗口 driver.get("https://www.baidu.com") # 打开百度网页 # 清空文本框 driver.find_element_by_xpath("//input[@id='su']").clear() # 输入内容 driver.find_element_by_xpath("//input[@id='su']").send_keys("百度一下") # 点击按钮 driver.find_element_by_xpath("//input[@name='ss']").click() time.sleep(5) # 等待5秒钟 # step4: 关闭驱动对象 driver.quit() ``` 这个示例代码使用了Firefox浏览器驱动来执行自动化操作,包括最大化窗口、打开百度网页、清空文本框、输入内容、点击按钮等步骤。在执行完这些操作后,使用.quit()方法关闭了驱动对象。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [如何使用 Selenium 实现自动化操作?](https://blog.csdn.net/CYK_byte/article/details/128678806)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Web自动化——selenium自动化环境搭建以及本编写基本步骤(基于Python)](https://blog.csdn.net/qq_38684868/article/details/121975970)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值