爬虫-Selenium -抱错ElementNotVisibleException: Message: element not visible
1.当使用Selenium IDE 完成了脚本的录制和回放通过后,想要将脚本转换为其他语言如java、Python等,首次使用时打开Options-》Format发现没有可以转换的语言,如下:
这个时候需要设置一下,打开Options-》Options,勾选如下选项允许扩展功能,如下:
保存后重新打开Options-》Format,就可以将脚本转换成你想要的语言来显示,如下:
点击转换后,就可以将脚本装换成你想要的语言来表示,如转换成Python语言的脚本:
Selenium Webdriver
1.使用chrome浏览器运行脚本的配置
首先需要下载chromedriver,下载可以到如下地址自由选择下载版本,我选择最新的V2.9版本(我的是放在和Python安装路径目录下):
http://chromedriver.storage.googleapis.com/index.html
下载完成后,将chromedriver解压缩,将当前存放ChromeDriver.exe的路径加到系统变量path路径下:
完成后就可以在脚本中通过调用ChromeDriver来运行Chrome浏览器执行脚本:
2.当出现如下错误时:ElementNotVisibleException: Message: element not visible,表示元素初始是不可见,首先确保你的定位没有问题后,有可能是因为页面加载没有完成导致无法定位到该元素,可以通过添加:
time.sleep(5) #延时5秒
解决问题,延时时间自己根据实际情况确认,一般在页面跳转或打开不同页面是需要添加。
3.当出现如下错误:Element is not clickable at point
主要原因是这个按钮不是可点击的按钮,可以根据错误提示进行替换备用按钮;或者由于该按钮被其他东西阻挡(弹框、浏览器没有最大化)导致无法点击,可以根据时间情况修改。
ps:我就是没有把浏览器最大化导致点击失败的!囧
4.selenium出现click单击无效无效的情况如何处理?
一般出现click单击无效的情况,主要是由于失去了跳转点击时出现失去焦点的问题(具体原因未知),可以参考解决方法:
(a)点击前先按下tab键(其他按键也可以考虑)再进行点击可以解决:
driver.find_element_by_xpath(".//*[@id='dologin']").send_keys(Keys.TAB)
driver.find_element_by_xpath(".//*[@id='dologin']").click()
(b)也可以考虑点击2次可以解决:
driver.find_element_by_xpath(".//*[@id='dologin']").click()
driver.find_element_by_xpath(".//*[@id='dologin']").click()
5.当出现如下错误selenium.common.exceptions.StaleElementReferenceException:
Message: stale element reference: element is not attached to the page
document,意思是页面元素没有连接成功,一般是由于返回或刷新页面导致丢失,解决版本可以参考:
(a)重新刷新加载页面
(b)重新获取页面元素
6.Selenium webdriver启动chrome浏览器出现提示:--ignore certificate errors
爬虫-Selenium -抱错ElementNotVisibleException: Message: element not visible的更多相关文章
- selenium.common.exceptions.ElementNotVisibleException: Message: element not visible处理方法:selenium针对下拉菜单事件的处理
使用Selenium爬虫时,可能会遇到一些下拉菜单,动态加载,如果直接使用find_element_by_函数会报错,显示selenium.common.exceptions.ElementNotVi ...
- ElementNotVisibleException: Message: element not visible
selenium自动化测试中,经常会报异常: 可能会有各种疑问,元素可以定位到啊.为什么报以下异常? ElementNotVisibleException: Message: element not ...
- python + web自动化,点击不生效,提示“selenium.common.exceptions.ElementClickInterceptedException: Message: element click intercepted: Element is not clickable at point (117, 674)”
前言: 在做web自动化时,遇到一个缩放了浏览器比例的操作,从100%缩小到80%,再进行点击的时候,弹出报错信息,无法点击 selenium.common.exceptions.ElementCli ...
- selenium之 坑(StaleElementReferenceException: Message: Element not found in the cache...)
今天给大家分享一个selenium中经常会有人遇到的坑: selenium.common.exceptions.StaleElementReferenceException: Message: Ele ...
- python+selenium:点击页面元素时报错:WebDriverException: Message: Element is not clickable at point (1372.5, 9.5). Other element would receive the click: <li style="display: list-item;" id="tuanbox"></li>
遇到一个非常郁闷的问题,终于解决了, 问题是这样的,NN网站的价格计划,每一个价格计划需要三连击才能全部点开,第一个房型的价格计划是可以正确三连击打开的,可是第二个房弄就不行了,报错说不是可点击的 ...
- python控制selenium点击登录按钮时报错 unknown error: Element is not clickable at point
利用python控制selenium进行一个网页的登录时报错: C:\Users\Desktop\selenium\chrome>python chrome.py selenium.common ...
- python selenium 报错unknown error: cannot focus element 解决办法
登录框由于js限制,定位到元素后无法sendkey ,sendky报错如下: selenium.common.exceptions.WebDriverException: Message: unkno ...
- selenium之坑:点击后页面刷新重新获取刷新前的页面(StaleElementReferenceException:Message:Element not found in the cache...)
循环点击一列链接,但只能点到第一个,第二个失败,这是为什么,因为第二个已经是新页面,当然找不到之前页面的元素,虽然元素没变,甚至是后退回来,页面都没有变,为什么是新页面,页面长的一样不代表是同一张页面 ...
- selenium之坑(StaleElementReferenceException: Message: Element not found in the cache...)
有时候循环点击一列链接,只能点到第一个,第二个就失败了 原因是第二个已经是新页面,当然找不到之前页面的元素.就算是后退回来的,页面也是不一样的 页面长的一样不一定是同一张页面,就像两个人长的一样不一定 ...
随机推荐
- MySQL OCP
http://www.royalwzy.com/ http://www.aixchina.net/home/space.php?uid=898169
- 3D立体显示技术原理与游戏应用历程简介 【转】
本文来自 中关村ZOL 「3D 立体显示」可说是近来娱乐产业相当热门的话题,不但有好莱坞推出<阿凡达>等卖座 3D 立体电影,全球各大家电厂商也积极布局准备推出一系列支持 3D 立体显示的 ...
- Codis连接异常问题处理
报错信息可以看出:由于没有正常的关闭连接,导致连接异常 Caused by: redis.clients.jedis.exceptions.JedisConnectionException: Unex ...
- sql语句中几个需要注意的点
1.在写join语句的时候,一定要注意不要漏了on语句,例如: Select * from Student inner join Sc on Student.Sno=Sc.sno 2.having语句 ...
- Linux:和任务执行相关的 【批命令执行 runparts 】命令
run-parts:执行目录下的 命令或脚本 工具,其他非可执行文件和子目录下的文件不会被执行.目录下的命令,是以基本的词汇(字符)顺序执行的,除非你指定了--reverse 逆序选项!这是个老牌的G ...
- spring boot 读取配置文件(application.yml)中的属性值
在spring boot中,简单几步,读取配置文件(application.yml)中各种不同类型的属性值: 1.引入依赖: <!-- 支持 @ConfigurationProperties 注 ...
- Tomcat 性能监控及调优
1.性能监控 方式1: /usr/local/tomcat7/conf/tomcat-users.xml 添加如下: <role rolename="manager-gui" ...
- props default 数组(Array)/对象(Object)的默认值应当由一个工厂函数返回
1.场景: Object: <!-- 步骤 --> <template> <div> <div class="m-cell"> &l ...
- apue学习笔记(第十五章 进程间通信)
本章将说明进程之间相互通信的其它技术----进程间通信(IPC) 管道 管道只能在具有公共祖先的两个进程之间只用.通常,一个管道由一个进程创建,在进程调用fork后,这个管道就能在父进程和子进程之间使 ...
- 【Python】程序在运行失败时,一声不吭继续运行pass
在前面程序出现异常时,我们都会给一个提示,告诉用户,程序为什么会异常,但是现在我们想在程序出现异常时,不做处理,让程序默默的往下执行,不要做声. 那么我们就引入了pass语句 def count_wo ...