gpt4 book ai didi

python - Selenium:查找存储在容器中的元素

转载 作者:行者123 更新时间:2023-12-03 16:49:45 24 4
gpt4 key购买 nike

我正在使用 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 段。

欢迎任何想法。这是我第一次在该网站上发帖,希望我没有遗漏任何内容。

这是我试图定位的字段的图像,它是一个搜索响应:

搜索字段容器响应

Screen Shot

为了展示,这里是找到其他条目但不是“123456”的 CSS 响应

CSS_Selector 响应

Screen Shot

添加了显示搜索元素的结果的屏幕截图

找到元素@JeffC 的屏幕截图

Screen shot

最佳答案

所需元素是启用 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

关于python - Selenium:查找存储在容器中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53716595/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com