如何等待selenium中的选项被点击?

2024-09-30 16:37:58 发布

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

我现在正在写一个脚本,从一个网站获取信息,有很多选择/选项字段。问题是,在尝试单击选项之前,我正在检查选择框是否可单击,但这在15%的时间内有效。下面是等待元素可单击的行:

schoolbox = Select(WebDriverWait(driver, 100).until(EC.element_to_be_clickable((By.ID, "clCampusSelectBox"))))

如何等待此select元素下面的选项可单击?在

谢谢

编辑:以下是下拉列表:https://shop.bookstore.ubc.ca/courselistbuilder.aspx


Tags: to脚本元素网站选项driver时间element
2条回答

我写这封信是为了告诉你,等待选择列表和等待选项是两件不同的事情!你为什么要等“选择列表”可点击?你需要等待选择,对吗?我不懂python,我使用WATIR(语言是Ruby),在这里等待select_list然后等待选项会自动发生,您不需要编写任何东西

这个简单的代码就足够了

b.select_list(:id,'q').select 'hi'

它将自动等待select list出现,然后等待option出现,您不必故意做任何事情。在

但是如果我想写代码等待select_list,那么我会写

^{pr2}$

如果我想写代码等待选项在选择列表中,然后我会写

b.select_list(:id,'q').option(:text,'hi').wait_until_present.select

如果我想两个都等,那我就写信

b.select_list(:id,'q').wait_until_present.option(:text,'hi').wait_until_present.select

但这些在WATIR中是不必要的,因为它会自动等待一切。在

所以,您只需要知道是等待select_list还是等待option,因为在特定条件下,您的select list选项将根据某些条件填充。在

可单击元素必须可见并启用。<select>下的<option>元素通常不可见,因此“is clickable”检查将失败。我建议您等待下拉列表可见,然后使用select class选择该选项

schoolbox = Select(WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.ID, "clCampusSelectBox"))))
schoolbox.select_by_value("someValue")

相关问题 更多 >