zoukankan      html  css  js  c++  java
  • 爬虫-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

    解决办法如下(在启动driver时添加一个选项,将提示去除即可):
    option=webdriver.ChromeOptions()
    option.add_argument("test-type")
    driver = webdriver.Chrome(chrome_options=option)
     
     
     
  • 相关阅读:
    Java实现 LeetCode 735 行星碰撞(栈)
    Java实现 LeetCode 735 行星碰撞(栈)
    Java实现 LeetCode 887 鸡蛋掉落(动态规划,谷歌面试题,蓝桥杯真题)
    Java实现 LeetCode 887 鸡蛋掉落(动态规划,谷歌面试题,蓝桥杯真题)
    Java实现 LeetCode 887 鸡蛋掉落(动态规划,谷歌面试题,蓝桥杯真题)
    Java实现 蓝桥杯算法提高 求最大值
    Java实现 蓝桥杯算法提高 求最大值
    Java实现 蓝桥杯算法提高 求最大值
    Python eval() 函数
    Python repr() 函数
  • 原文地址:https://www.cnblogs.com/Amos-Turing/p/8243365.html
Copyright © 2011-2022 走看看