【问题标题】:ElementNotVisibleException: element not visible PythonElementNotVisibleException:元素不可见 Python
【发布时间】:2018-08-17 03:09:35
【问题描述】:

我是 Python 和 Selenium 的新手,尝试通过 webdriver 单击按钮时遇到了问题。

我试图点击的 div 的 HTML 是:

<div class="">
    <form method="POST">
    <input class="hide" id="accept" name="accept" type="text" value="yes" readonly="">
    <a href="/" class="btn btn-red">
         <div class="svg-group group   icn-bg-circle" data-png-fallback="">
         <svg width="8" height="8">
         <use xmlns:xlink=" " xlink:href=""></use>
         </svg>
         </div>
         Decline
     </a>
     <button class="btn btn-green" type="submit">
         <div class="svg-group group   icn-bg-circle" data-png-fallback="">
             <svg width="8" height="8">
             <use xmlns:xlink="" xlink:href=""></use>
         </svg>
         </div>
      Accept
     </button>
</form>
</div>

我想在类名为 'class="btn btn-green"' 的按钮上使用 .click()。

我已经使用以下代码来选择元素(在遵循其他类似 SO 问题中的解决方案之后。

driver.find_element_by_css_selector(".btn-green")

看起来 webdriver 可以找到该元素,但是当我尝试应用 .click() 时,我得到:

ElementNotVisibleException:元素不可见

然后我对元素进行了一些挖掘(认为我可以通过使用 x、y 坐标来点击绕过)但在使用 .size 和 .location 之后我得到:

{'x': 0, 'y': 0}
{'height': 0, 'width': 0}

如果您能就如何解决这个问题提供任何帮助,我们将不胜感激。

谢谢

【问题讨论】:

  • 我想知道为什么 Decline&lt;a&gt; 标签内,而 Accept&lt;button&gt; 标签内。

标签: python css selenium xpath selenium-webdriver


【解决方案1】:

错误提示潜在问题,selenium 确实找到了它,但它不可见,因此您无法单击它。您可以在单击之前使用is_displayed 检查可见性。另一种可能性是,如果该类的另一个按钮是隐藏的,请尝试查看是否可以使用$(".btn-green")在浏览器控制台(Control+Shift+J)中选择可见元素@

一些可能对您的问题更有效的 xpath:

//button[@type="submit" and text()="Accept"]

//button[@type="submit" and contains(@class, "btn-green")]

【讨论】:

  • 还有一个类被隐藏了!谢谢!我通过使用可见元素的 xpath 解决了。
  • 当然。您也可以接受答案(复选标记)或单击向上箭头。还有一件事,您放置的 xpath 不是很健壮,好像页面更改了您的 xpath 可能不再找到您可能想尝试的元素 //button[@type="submit" and contains(@class, "btn-green ")],希望共享类名的另一个元素不是提交按钮
【解决方案2】:

要点击按钮,文本为Accept,您可以使用以下代码行:

driver.find_element_by_css_selector("button.btn.btn-green[type='submit']")

【讨论】:

    猜你喜欢
    • 2016-03-31
    • 1970-01-01
    • 2018-03-25
    • 2019-05-04
    • 2016-11-13
    • 2016-07-18
    • 2019-04-19
    • 1970-01-01
    相关资源
    最近更新 更多