在selenium和python中,等待元素列表中的单个元素可单击



假设我有以下代码行:

inner_elems_list = outer_elem.find_elements_by_name('name_of_elem')

这一行运行良好,并返回一个包含2个元素的列表。我想点击第二个:

inner_elems_list[1].click()

在此之前,我想确保它是可点击的,如果不等待它。我知道这个选项:

WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.NAME, "name"))

但这不行——它检查一个有唯一名称的项目,但我有一个2的列表,我不知道如何让这个函数在第二个项目上工作。

有什么想法吗?

您可以直接将web元素作为参数传递给预期条件。像这个

inner_elems_list = outer_elem.find_elements_by_name('name_of_elem')
WebDriverWait(driver, 20).until(EC.element_to_be_clickable(inner_elems_list[1])

最新更新