gpt4 book ai didi

python - 具有预期条件的 Selenium WebDriverWait 仅返回第一个找到的元素(Python)

转载 作者:行者123 更新时间:2023-12-01 07:11:37 25 4
gpt4 key购买 nike

我有以下 html 元素:

1)

<span class="input-group-btn">
<button type="submit" class="btn btn-default" data-qa-
id="main-
go-button">Go</button>
</span>

2)

<span class="input-group-btn" style="float: left;"><button type="button" 
wkda-autocomplete-update="update" class=" btn btn-default" data-qa-
id="">Change</button></span>

3)

<span class="input-group-btn"><button type="button" wkda-autocomplete- 
update="update" class=" btn btn-default" data-qa-id="">Change</button></span>

常规元素查找器:

browser.find_elements_by_class_name("input-group-btn")

返回三个项目的列表,因为三个 html 部分包含相同的结构:

[<selenium.webdriver.remote.webelement.WebElement 
(session="1fc51e63b34c7acfa37e3930c86fc46c", element="6bab5131-a508-41da-
a7b7-1ccaae8dabda")>,
<selenium.webdriver.remote.webelement.WebElement
(session="1fc51e63b34c7acfa37e3930c86fc46c", element="26dfeaa3-d54c-4652-
a84e-aae47d0574ba")>,
<selenium.webdriver.remote.webelement.WebElement
(session="1fc51e63b34c7acfa37e3930c86fc46c", element="7bb98d81-a576-41fd-
be70-2aa2564f76b9")>]

我只想选择并单击此列表的第三个元素,所以我这样做:

browser.find_elements_by_class_name("input-group-btn")[2].text

而且效果很好。

我想通过 WebDriverWait 找到这个元素。但是当我运行这个时:

WebDriverWait(browser, 10).until(EC.visibility_of_element_located((By.CLASS_NAME, "input-group-btn")))

它只找到前一个列表的第一个元素,因此它返回找到的第一个元素,但我想获取第三个元素。

你知道是否有办法获取第三个元素而不是找到的第一个元素?

最佳答案

单击“最后更改”按钮。引发 WebdriverWait 并遵循 XPATH。

WebDriverWait(driver,10).until(EC.presence_of_element_located((By.XPATH,"(//span[@class='input-group-btn']/button[text()='Change'])[last()]"))).click()

关于python - 具有预期条件的 Selenium WebDriverWait 仅返回第一个找到的元素(Python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58188773/

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