我使用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)