如何解决无法单击 <td> 元素内的按钮
#这个问题已经解决,因为它是一个iframe问题,这就是找不到元素的原因,我用来使它工作的代码是:
error Command "build" not found.
button = driver.find_elements_by_css_selector(".btn.btn-primary")
我需要点击 class="btn btn-primary / Ingresar como usuario" 按钮,但似乎找不到元素?
这是我的代码:
<td>
<input type="hidden" value="xxxxx" id="1_nombre_77074118_1">
<input type="hidden" value="xxx@xxx.cl" id="1_email_77074118_1">
<a class="btn btn-primary" href="" onclick="javascript:submitEntrar(true,1,77074118,'1');return false;">Ingresar como usuario</a>
</td>
(两个打印都不会返回元素,因为它们找不到)。
我也尝试过 XPATH 但它没有用,这是 XPATH:
button = driver.find_elements_by_class_name("btn btn-primary")
print(len(button))
for b in button:
print(button)
完整的 XPATH:
//*[@id="container"]/section/div[1]/table/tbody/tr[1]/td[3]/a
非常感谢!
解决方法
首先因为元素中有多个类名而不是
button = driver.find_elements_by_class_name("btn btn-primary")
试试
button = driver.find_elements_by_css_selector(".btn.btn-primary")
此外,您可能还需要在访问这些元素之前添加延迟/等待。
,试试
button = driver.find_elements_by_css_selector(".btn.btn-primary)
,
你可以试试这个,因为我们可以根据文本搜索和点击元素
driver.find_element_by_xpath("//a[text()='Ingresar como usuario']")
driver.find_element_by_xpath("//*[contains(text()='Ingresar como usuario')]")
driver.find_element_by_partial_link_text("Ingresar como usuario")
另外,推荐使用explicitWait
button = WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,"//a[text()='Ingresar como usuario']")))
button.click()
,
有两个原因
- 类调用应该以 .例如)
.btn
- 您正在尝试使用两个类进行调用。如果您注意到
btn
和btn-primary
是两个不同的类,那么您可以使用其中之一调用
button = driver.find_elements_by_css_selector(".btn.btn-primary")
或
button = driver.find_elements_by_class_name(".btn.btn-primary")
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。