赞
踩
一、TypeError:‘module’ object is not callable
解决方案:谷歌浏览器Chrome单词C大写,修改为webdriver.Chrome()
二、‘chromedriver’ executable needs to be in PATH.
问题原因:没有chrome驱动,需要先下载chrome驱动,然后添加到环境变量中
解决方案:
1、访问http://chromedriver.storage.googleapis.com/index.html,找到自己浏览器对应版本的chromedriver.exe下载(版本一定要下载对)
2、下载下来的文件解压后放在chrome浏览器所在目录
3、添加环境变量到PATH
注意:如果还是运行报错,就在代码中添加chromeDriver的路径来检测下版本是否正确; 如果直接添加路径还报错,就是驱动版本没下载对;如果直接添加路径正确,说明环境变量没配置对
from selenium import webdriver url = “http://www.baidu.com” browser = webdriver.Chrome(executable_path=“C:\Users\12717\AppData\Local\Google\Chrome\Application\chromedriver.exe”) browser.get(url)
三、驱动文件与当前浏览器不兼容
selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 101 Current browser version is 113.0.5672.64 with binary path C:\Program Files\Google\Chrome\Application\chrome.exe
1、 浏览器版本查看
打开谷歌浏览器>>>Settings>>>About Chrome>>>查看浏览器版本
2. 驱动版本选择与下载
官方下载速度太慢,这里使用的是淘宝NPM镜像地址:
CNPM Binaries Mirror
https://registry.npmmirror.com/binary.html?path=chromedriver/
打开上面的镜像网站,我们可以看到多种不同版本的Chrome驱动
选择与浏览器版本最接近的驱动版本,点击蓝色链接
每个蓝色链接都对应着该版本驱动,其中又因系统的不同被分为不同的压缩包,在这里只介绍windows的驱动下载,我们点击下载win32.zip的压缩包,将其保存,解压后,我们看到里面只有一个.exe文件,这就是我们所说的Chrome浏览器驱动,我们将其转移至python解释器:python.exe同级目录中
四、Selenium定位到元素点击却报错:ElementClickInterceptedException:element click intercepted
网上搜索到了2种方式,我用第一种方式解决了
方式一:
element = driver.find_element_by_xpath(“表达式”)
driver.execute_script(“arguments[0].click();”, element)
方式二:
element = driver.find_element_by_xpath(‘表达式’)
webdriver.ActionChains(driver).move_to_element(element ).click(element ).perform()
element = self.driver.find_element_by_xpath(//button[@data-test-id=“add”]) driver.execute_script(“arguments[0].click();”, element)
五、selenium使用clear()函数无法清空输入框的内容
正常是我们在清除文本框内容的时候,都会使用 clear() 函数进行清除,但是有时候会出现,清除完成后再点击查询时,文本框的内容会再次自动填充,这个时候我们可以选择以下方式:
#清空查询条件
driver.find_element_by_id(“FORM_NAME”).send_keys(Keys.CONTROL, “a”)
driver.find_element_by_id(“FORM_NAME”).send_keys(Keys.CONTROL, “a”)
driver.find_element_by_id(“FORM_NAME”).send_keys(Keys.DELETE)
全选文本框内容,然后输入删除按键,问题解决!
六、下拉框是input封装的,下拉框内容无法定位
解决方案:先定位到input,然后输入内容,通过操作键盘键选择下拉框内容。
element = self.driver.find_element_by_xpath(position) element.send_keys(Keys.CONTROL, ‘a’) element.send_keys(text) # 输入内容 element.send_keys(Keys.DOWN) # 键盘下键 element.send_keys(Keys.ENTER) # enter键
七、测试用例第一条总是执行失败
原因:登陆页面和测试页面之间未设置延迟;
解决方案:在打开登陆页面之后设置一个延迟,再打开测试页面
八、selenium ide报错 Invalid value for bounds. Bounds must be at least 50% within visible screen space.
解决方案:
1、浏览器重新启动不要设置打开上次关闭的页面
2、连续执行两次,第二次可以正常执行下去
3、修改窗口大小为1024*728
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。