我在浏览器上使用python selenium填写某种形式。我试图在下拉列表中选择一个元素,
<a href="#" class="dropdown-toggle select" data-toggle="dropdown">0</a>
但如果我尝试使用此脚本通过文本找到它:
browser.find_element_by_link_text("0").click()
导致错误: “未知错误:元素在点(498,612)处无法点击。其他元素将收到点击:...”
如果尝试按类名找到它:
browser.find_element_by_class_name("dropdown-toggle").click()
导致另一个错误:“元素不可见”
有什么方法可以点击下拉列表吗?非常感谢。
答案 0 :(得分:1)
感谢您的反馈,我发现问题是由于某些点击触发了javascript加载新脚本所致。我创建了以下代码来捕获异常并重试,直到元素准备就绪:
while True:
try:
time.sleep(1)
browser.find_element_by_xpath("//div[@class='tckt']/a").click()
print("found")
break
except ElementNotVisibleException:
print("notvisible")
except WebDriverException:
print("clickduplicate")
我在文章中看到,这对Chrome webdriver的单选按钮发生了很多,希望这会有所帮助。
答案 1 :(得分:1)
尝试通过Xpath同时搜索部分类和文本来找到它:
browser.find_element_by_xpath(//a[contains(@class, 'dropdown-toggle select') and contains(text(), '0')]).click();
答案 2 :(得分:0)
你应该通过xpath获取元素,然后按下它。
browser.find_element_by_xpath(xpath的)。
在这里阅读如何获取xpath:http://www.wikihow.com/Find-XPath-Using-Firebug
答案 3 :(得分:0)
首先点击父元素,找到它,使用它xpath
- &gt;找到你想在父元素中点击的元素,就像你做的那样。即
browser.find_element_by_link_text("0").click()
希望这2个步骤对您有用。否则,请使用您尝试的代码发布网址 - 很容易找到问题。
答案 4 :(得分:0)
我有类似的问题。您可以执行脚本以在找到该元素后更改该元素的可见性,然后单击它。
driver.execute_script("arguments[0].style.visibility = 'visible';",myElement)
myElement.click()