使用 selenium、python 访问元素的问题

问题描述 投票:0回答:1

我试图访问的元素是下拉菜单、弹出菜单,对此我不确定。应该发生的是我在输入字段中输入一个 ID,然后需要几秒钟的时间在数据库中加载和搜索它,如果找到它会重新加载,然后我应该在下拉列表中单击它。我能够找到该元素,然后输入所需的 ID,然后重新加载,但一旦加载到下拉菜单/弹出窗口中,我就无法选择它。以下是屏幕截图: ( Before | After)

下面是我使用的代码:

elem = all_rows[1].find_element(By.CSS_SELECTOR, "div.MuiAutocomplete-root.autoSearchAutoRoot")
            rt_id_enter = all_rows[1].find_element(By.TAG_NAME, "input")
            rt_id_enter.send_keys(str(df['RT ID'][0]))
            wait = WebDriverWait(driver, 10)
            rt_id_select = all_rows[1].find_element(By.TAG_NAME, "input")
            rt_id_select.click()

我尝试访问的元素是下拉菜单、弹出菜单,对此我不确定。应该发生的是我在输入字段中输入一个 ID,然后需要几秒钟的时间在数据库中加载和搜索它,如果找到它会重新加载,然后我应该在下拉列表中单击它。我能够找到该元素,然后输入所需的 ID,然后重新加载,但一旦加载到下拉菜单/弹出窗口中,我就无法选择它。

python-3.x selenium-webdriver drop-down-menu css-selectors
1个回答
0
投票

也许尝试替换这个:

wait = WebDriverWait(driver, 10)
rt_id_select = all_rows[1].find_element(By.TAG_NAME, "input")
rt_id_select.click()

有了这个:

rt_id_select = WebDriverWait(self.driver, 20).until(EC.element_to_be_clickable(all_rows[1].find_element(By.TAG_NAME, "input")))
rt_id_select.click()

您可能需要导入以下内容才能工作

from selenium.webdriver.support import expected_conditions as EC
© www.soinside.com 2019 - 2024. All rights reserved.