executable needs to be in PATH
'chromedriver.exe' executable needs to be in PATH.
放入了PATH也没有用,最后加入到项目某个路径下使用
browser = webdriver.Chrome("src/chromedriver.exe")
- 输入框输入后,点击提交按钮,此时光标还在最后一个输入框中,先点击某处(如某个label)使其失焦,然后定位提交按钮。
- unvisible,使用visibility_of_element_located
- 当前页面看不到元素,先滚动滚动条使元素显示出来,或者缩小页面使其显示出来
self.driver.execute_script("document.body.style.zoom=0.8")
注意:不是所有的前端都是按照原生的来写的,如果没有效果要问下你们前端的实现方法,来找到合适的解决方案
js = "document.querySelector('.scroll-inner').style.transform = 'translate(0px, -265px) scale(1) translateZ(0px)'"
self.driver.execute_script(js)
有的时候滚了半天都不行,但是加几个time.sleep就可以了!
list不能点击
presence_of_element_located 写成了presence_of_all_elements_located
有frame元素
selenium chrome error 10054
chrome的驱动版本与当前浏览器驱动版本不匹配,重新下载。
具体版本对应查看官方更新文档:https://sites.google.com/a/chromium.org/chromedriver/downloads。
点击没反应
按钮拿到了,按钮的信息也输出正常,就是click之后,界面没有任何反应。
界面的流程如下:
前一个界面为loading的页面,loading完后有一个带按钮的页面,需要点击该页面上的按钮。
程序已经获取到了该按钮并且打印出了该按钮的class属性值,但是click时,界面没有任何效果,可以看到光标旁边的圈圈转了一下,说明是有发这个事件请求,但是页面没有跳转。
将find_element_by_xpath换成了find_element(By.XPATH, 'xxxxx')后依然不行。
找不到seesionid
有可能是版本不兼容:
将selenium版本从3.0.1改到3.4.1,错误消失
self sessionid keyerror
self.session_id = response['sessionId'] KeyError: 'sessionId'
查看目前使用的环境:
使用驱动为Firefox的geckodriver,版本0.16.0。
selenium版本3.0.1。
分析提示:
该错误为第三方内部错误,keyError可以大概说明该Key已经不存在,可能是官方的内部代码已经修改,这里的geckodriver与selenium可能不匹配。
查看geckodriver官文,v0.16.0版本的更新说明.
摘取关键点:
Note that geckodriver v0.16.0 is only compatible with Selenium 3.4 and greater.
说明目前的selenium版本过低,升级其版本。
重新运行后,发现一切正常。
遇到问题时,重要的是根据细小的点思考解决办法的方向。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。