gpt4 book ai didi

python - 在 Python 中使用 ChromeDriver (Selenium) 通过 CSS 选择器查找元素

转载 作者:行者123 更新时间:2023-12-01 09:27:04 26 4
gpt4 key购买 nike

我正在使用 Selenium 的 ChromeDriver 和 Python,并且我试图在我的页面上找到一个具有以下 HTML 的按钮:

<input id="j_id0:SiteTemplate:j_id255:new" type="submit" name="j_id0:SiteTemplate:j_id255:new" value="New" class="kbutton-white">

我知道唯一不变的是 id 和名称以“new”结尾,我尝试使用以下代码来识别并单击该元素:

test_runner.driver.find_element_by_css_selector('[id*=new]').click()

但是,当我运行代码时,出现此错误:

raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"[id*=new]"}

我的错误是什么?

更新:该元素位于 iframe 内,在尝试查找该元素之前我必须切换到 iframe。请参阅评论以获得答案。

最佳答案

根据您共享的 HTML,在所需元素上调用 click(),您可以使用以下 css_selector :

driver.find_element_by_css_selector("input.kbutton-white[id$='new'][name$='new'][value='New']").click()

说明:

  • .kbutton-white :class 属性。
  • id$='new':id 属性以 new 结尾
  • name$='new':name 属性以 new 结尾
  • value='New':value 属性。

但该元素似乎是动态的,因此您可能需要按如下方式诱导WebDriverWait:

WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input.kbutton-white[id$='new'][name$='new'][value='New']"))).click()
<小时/>

引用文献

您可以在以下位置找到一些相关的详细讨论:

关于python - 在 Python 中使用 ChromeDriver (Selenium) 通过 CSS 选择器查找元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50298553/

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