我正在使用Selenium来自动化流程。到目前为止,我在这里可以找到所需的东西非常成功,但是却找不到找到该元素的方法:
<a href="javascript:void(0);" onclick="AUL.update('AssignedAssetsUpdateContainer', {}, '13.7.25.0.0.0.0.2.3.0.0.1.2.0.3.0.1.5.3.3.0.1.3.1.5.0.0.1.2.9.5.1.19.0.1.3.1');">
123456
</a>
我首先尝试通过搜索所有标签来查找它,
assetElements = driver.find_elements_by_tag_name("a")
for element in assetElements:
if(element.text == "123456")
element.send_keys(Keys.RETURN)
我显然是因为href标记而选择了此路线,但它告诉我找不到页面上的元素。我认为这是因为页面正在查询数据库并将其填充到容器中。
Butttt...。由于无法找到它,我采取了在https://selenium-python.readthedocs.io/api.html#上找到的其他find_elements选项,并打印了可用的.text段,但找不到。
任何想法都将受到欢迎。这是我第一次在该网站上发帖,希望我不要错过任何内容。
这是我尝试查找的字段的图像,它是搜索响应:
搜索字段容器响应
为了显示,这是CSS响应,查找其他条目,但未找到“ 123456”
CSS_Selector响应
添加了屏幕截图,显示了搜索元素的结果
找到的元素@JeffC的屏幕截图
答案 0 :(得分:0)
所需元素是启用了JavaScript的元素,因此要对该元素调用click()
,必须诱使 WebDriverWait 使元素可点击,您可以使用以下解决方案:
使用XPATH
:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//a[contains(@onclick,'AssignedAssetsUpdateContainer') and normalize-space()='123456']"))).click()
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC