Selenium Select-使用Select花费了很长时间,因此按索引进行选择失败



我使用selenium使用python运行脚本,并使用select选择下拉列表中的第一项:

my_select = Select(driver.find_element_by_id("some_id"))
sleep(0.25)
my_select.select_by_index(1)

因为选择需要一些时间,所以在按索引选择之前我必须先睡觉。我想把睡眠换成另一种选择。

感谢

如果选择需要一些时间,您应该在my_select.select_by_index(1)之后而不是之前放置一些延迟。
您应该在此处使用Expected Condition显式等待,而不是sleep(0.25)的伪硬编码暂停
假设在应用my_select.select_by_index(1)之后,会出现一些文本为Option 1的元素。在这种情况下,您可以使用如下命令:

wait.until(EC.visibility_of_element_located((By.XPATH, "//*[text()='Option 1']")))

为了使用这样的wait对象,您将需要这些导入和对象初始化:

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
wait = WebDriverWait(driver, 20)

最新更新