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



我试图访问的元素是一个下拉,弹出,不确定这一点。我在输入框中输入一个ID然后它需要几秒钟加载然后在数据库中搜索,如果找到了它会重新加载然后我应该在下拉框中点击它。我能够找到元素,然后输入所需的ID,然后重新加载,但一旦在下拉/弹出框中加载,我无法选择。以下是截图:(之前|后)

下面是我使用的代码:
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,然后重新加载,但一旦在下拉/弹出框中加载,我就无法选择了。

也许可以试试替换这个:

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

交替选择

如果这不起作用,请尝试使用发送键功能,使用TAB键和enter键的组合来选择并单击元素。要执行发送键命令,请参见下面的命令:

ActionChains(self.driver).send_keys(keys.TAB).perform()
ActionChains(self.driver).send_keys(keys.ENTER).perform()

你可能需要导入:

from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains

最新更新