zoukankan      html  css  js  c++  java
  • selenium报错Element is not clickable at point及四种解决方法

    使用Selenium时,触发点击事件,经常报如下异常:
    Element is not clickable at point
     

    1、未加载
    没加载出来就等待元素加载出来,再往下执行。
    可以使用python库time

    不过最好还是使用selenium自带WebDriverWait

    2、在iframe里
    如果元素在iframe里,在窗口里找是找不到元素的,更是无法点击。所以,要切换到iframe里去找元素。

    3、不在视窗里,需要拉滚动条
    很多网站的列表页不是立马返回所有内容,是根据视图来显示的。所以,我们就需要拖动滚动条来把要获取的内容显示到视窗里才可以获取到。

    js="var q=document.documentElement.scrollTop=100000"   driver.execut_script(js)

    #滑动到顶部    js="var q=document.documentElement.scrollTop=0"    driver.execut_script(js)

    #滑到底部    js="window.scrollTo(0,100000)"     driver.execute_script(js)

    #滑动到顶部    js="window.scrollTo(0,0)"      driver.execute_script(js)

    目前在firefox,chrome上验证都是可以跑通的

    4、要点击的元素被覆盖
    可以使用事件链来解决
    例如下拉菜单,通过hover,让子菜单显示,就可以点击了。

    menu = driver.find_element_by_css_selector(".nav")
    hidden_submenu = driver.find_element_by_css_selector(".nav #submenu1")

    ActionChains(driver).move_to_element(menu).click(hidden_submenu).perform()

    4、要点击的元素被遮挡

    如图:无法点击go,被前面的悬浮元素遮挡


    ————————————————
    版权声明:本文为CSDN博主「lzg_zone」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/lzg_zone/java/article/details/81239421

  • 相关阅读:
    mysql中IN和EXITS效率
    POJ 3301 Texas Trip
    Swift项目兼容Objective-C问题汇总
    使用linq对字符串1,2,3,4,5,6,7,8,9,10求和
    CodeForces 228D. Zigzag(线段树暴力)
    代理模式
    Oracle成长点点滴滴(3)— 权限管理
    数据结构基础 之 图 的 邻接矩阵实现与邻接表实现
    android CoordinatorLayout使用
    Android开发之蓝牙(Bluetooth)操作(二)--修改本机蓝牙设备的可见性,并扫描周围可用的蓝牙设备
  • 原文地址:https://www.cnblogs.com/qiu-hua/p/12603675.html
Copyright © 2011-2022 走看看