gpt4 book ai didi

python - Selenium 测试中如何选择第一个li元素?

转载 作者:太空狗 更新时间:2023-10-30 02:10:40 24 4
gpt4 key购买 nike

标签的结构如截图所示

enter image description here

我正在尝试使用此 python 代码访问第一个 li 元素:

invitations = elem.find_element_by_css_selector('members-holder li#invitation-holder > :first-child')

elem 是一个非常顶级的元素,包含所有标签

我遇到了这个异常:

NoSuchElementException: Message: Unable to locate element: {"method":"css selector","selector":"members-holder li#invitation-holder > :first-child"}

我尝试了一些变体,但无法获得我想要的结果。选择所述元素的最佳方法是什么?

编辑

我在 chrome 的开发者控制台中尝试了一个替代的 css 选择器 .members-holder .invitation-holder:first-child 并且它有效。但是当我将它插入 python selenium 代码时,会抛出相同的异常。

最佳答案

首先,您应该修复您的 CSS 选择器:

.members-holder ul li.invitation-holder

并且,由于您需要第一个 li,只需使用 find_element_by_css_selector() method :

driver.find_element_by_css_selector('.members-holder ul li.invitation-holder')

除此之外,您可能需要 e xplicitly wait for the element to become visible :

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

...
element = WebDriverWait(driver, 10).until(
EC.visibility_of_element_located((By.CSS_SELECTOR, ".members-holder ul li.invitation-holder"))
)

如果您在尝试访问元素时仍然遇到异常,请检查元素是否在 iframe 中 - 如果是,请先切换到它:

frame = driver.find_element_by_id('frame_id')
driver.switch_to.frame(frame)

# find the element

关于python - Selenium 测试中如何选择第一个li元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28403902/

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