【问题标题】:selenium exception: Element is not clickable at point硒异常:元素不可点击
【发布时间】:2016-07-08 00:40:14
【问题描述】:

我最近将 selenium 升级到最新版本 (2.53),并将 firefox 升级到最新版本 (45.0.1)。

我在同一个网站上运行相同的代码,但突然出现很多这样的异常:

WebDriverException:消息:元素在点不可点击(312, 8.816665649414062)。其他元素会收到点击:

例如:

driver.find_element_by_class_name('my_class_name').click()

有什么新的东西需要我注意吗? 我以前的 python selenium 版本相当旧,我在 firefox 38 上。

【问题讨论】:

  • 好吧,这里的代码不起作用,因为您试图在 find_elements_by_class_name() 返回的数组上单击()。您能否向我们展示更多您专门获得此异常的代码?
  • 我唯一能想到的是旧版本的 selenium 没有正确识别出其他东西显示在你的目标上,或者你的应用程序行为发生了变化,因此它现在在方式。
  • 我更正了这个。这是我的代码。我通过实际执行一些javascript来点击按钮来解决这个问题。它更可靠。
  • 它是一个间歇性的问题,这使得很难确定它是代码还是(在我的疯狂幻想中)系统管理员反击爬行活动。此问题已被标记为 here- 但绝不限于 Chrome 驱动程序。
  • 我同意。这真的很痛苦,我花了很多时间进行调试。

标签: python python-2.7 selenium


【解决方案1】:

这是我找到的解决方案:

driver.execute_script("arguments[0].click();", element)

它可以正常工作,并且可以可靠地点击元素。

【讨论】:

    【解决方案2】:

    对我有效的解决元素的解决方案在点 (x,y) 异常处不可点击

    1-将chrome驱动更新到最新的2.15

    2-获取坐标然后点击链接或按钮

    3-尝试使用 Y 坐标点击

    # Find an element
    WebElement elementToClick = driver.findElement(By.xpath("Your xpath"));
    
    # Scroll the browser to the elements Y position 
    ((JavascriptExecutor)driver).executeScript("window.scrollTo(0," + elementToClick.getLocation().y + ")");
    
    # Click the element
    elementToClick.click();
    

    【讨论】:

      猜你喜欢
      • 2019-11-28
      • 2015-03-11
      • 1970-01-01
      • 2019-01-26
      • 2018-02-04
      • 2018-02-19
      • 1970-01-01
      • 2020-11-02
      • 2019-05-30
      相关资源
      最近更新 更多