查找并单击标签Selenium

2024-09-30 03:23:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我想单击下拉菜单中的一个选项。 这些选项具有标签值。 下拉菜单不是来自select元素。 它是一个输入元素,旁边有一个下拉箭头

下拉箭头具有以下属性

<span id="ctl00_ContentPlaceHolder1_ReportViewer1_ctl09_ctl21_ctl01" class="glyphui glyphui-downarrow" style="cursor: pointer;"></span>

我通过点击下拉箭头打开了下拉菜单

Bedrijfsindeling_dropdown = driver.find_element_by_xpath('//span[@id="ctl00_ContentPlaceHolder1_ReportViewer1_ctl09_ctl21_ctl01"]')
Bedrijfsindeling_dropdown.click()
time.sleep(1)

我找不到选择任何选项的方法。 标签看起来像:

    <label for="ctl00_ContentPlaceHolder1_ReportViewer1_ctl09_ctl21_divDropDown_ctl04">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Baggerbedrijf</label>

我希望能够选择“Baggerbedrijf”部分

最终,我想一个接一个地选择所有选项,但现在只能够选择“Baggerbedrijf”就足够了

我试图用driver.find_element_by_xpath('//label[@for="ctl00_ContentPlaceHolder1_ReportViewer1_ctl09_ctl21_divDropDown_ctl04"")']找到标签 然后点击它

然而,我得到了“没有这样的元素”的信息

我如何才能选择“Baggerbedrijf”选项


Tags: id元素选项标签labelspan下拉菜单nbsp
1条回答
网友
1楼 · 发布于 2024-09-30 03:23:27

单击下拉列表后,需要等待元素(“Baggerbedrijf”)可见,然后标识并单击它。否则,Selenium将尝试运行脚本,而无需等待页面DOM(重新)加载:)。因此,单击下拉列表后,添加这一行

WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.ID,'ctl00_ContentPlaceHolder1_ReportViewer1_ctl09_ctl21_divDropDown_ctl04'))).click()

WebDriverWait需要以下导入:

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

一般来说,使用WebDriverWait是一种很好的做法。考虑使用它来识别“BeDyjfsdIdLink下拉”,或者任何其他WebLIST。p>

相关问题 更多 >

    热门问题