我无法在python中使用硒单击网页中的按钮



下面的代码有什么问题

import os
import time
from selenium import webdriver
driver = webdriver.Firefox()
driver.get("http://x.x.x.x/html/load.jsp")
elm1 = driver.find_element_by_link_text("load")
time.sleep(10)
elm1.click()
time.sleep(30)
driver.close()

页面源是

<body>   
<div class="formcenterdiv">
<form class="form" action="../load" method="post">
<header class="formheader">Loader</header>
<div align="center"><button class="formbutton">load</button></div>
</form>   
</div>

</body></html>

我想点击按钮加载。 当我运行上面的代码时收到此错误selenium.common.exceptions.NoSuchElementException: 消息: 无法找到元素: load

正如文档所述,find_elements_by_link_text仅适用于a标签:

当您知道锚标记中使用的链接文本时,请使用此选项。有了这个 策略,第一个元素,其链接文本值与 位置将被返回。如果没有元素具有匹配的链接文本 属性,将引发 NoSuchElementException。

解决方案是使用不同的选择器,如find_element_by_class_name

elm1 = driver.find_element_by_class_name('formbutton')

你试过使用 Xpath 吗?

正如OP所说,find_elements_by_link_text仅适用于a标签: 下面的代码可能会帮助你

driver.get_element_by_xpath("/html/body/div/form/div/button")

最新更新