我是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>
我想在类名为&#39; class =&#34; btn btn-green&#34;&#39;。
的按钮上使用.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}
如果你能解决这个问题,你可以给予任何帮助。非常感谢。
由于
答案 0 :(得分:0)
错误暗示了潜在的问题,selenium确实找到了它,但它不可见,所以你不能点击它。您可以在点击之前检查is_displayed
的可见性。另一种可能性是,如果隐藏了该类的另一个按钮,请尝试查看是否可以使用$(".btn-green")
某些可能有效的xpath对您的问题更加健壮:
//button[@type="submit" and text()="Accept"]
//button[@type="submit" and contains(@class, "btn-green")]
答案 1 :(得分:0)
要点击按钮,文字为接受,您可以使用以下代码行:
driver.find_element_by_css_selector("button.btn.btn-green[type='submit']")