当我们收到 Selenium 中的元素列表时,使用“find_elements”命令,我们从该列表中选择一个元素,例如列表中的元素号 2
示例:
driver.find_elements(By.CLASS_NAME, 'container bg-black-100')[2]
现在我的问题是,如果我想编写一个命令来等待元素 2 出现在我的目标列表中,我应该如何设置以下代码!!
WebDriverWait(driver, 60).until(EC.presence_of_element_located((By.CLASS_NAME, 'container bg-black-100')))
您正在寻找的定位器表达式是:
WebDriverWait(driver, 60).until(EC.presence_of_all_elements_located((By.CLASS_NAME, 'container bg-black-100')))[2]
Selenium 有相当不错的文档这里。
您可以使用 xpath 来做到这一点,这给了我比类名更大的灵活性,例如这样的东西就可以了
EC.presence_of_element_located((BY.XPATH, (//*[contains(@class, 'container') and contains(@class, 'bg-black-100')])[2]))