4 回答

TA贡献1829条经验 获得超6个赞
由于所需的元素位于要在元素上调用的 so 中,因此您必须:<iframe>click()
诱导WebDriver为所需的.frame_to_be_available_and_switch_to_it()
诱导WebDriver为所需的.element_to_be_clickable()
您可以使用以下任一定位器策略:
用:CSS_SELECTOR
WebDriverWait(driver, 10).until(EC.frame_to_be_available_and_switch_to_it((By.CSS_SELECTOR,"iframe#content-frame")))
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "button[data-qa='reporting-filter-trigger-toggle'][data-ember-action]"))).click()
用:XPATH
WebDriverWait(driver, 10).until(EC.frame_to_be_available_and_switch_to_it((By.XPATH,"//iframe[@id='content-frame']")))
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//button[@data-qa='reporting-filter-trigger-toggle' and @data-ember-action]"))).click()
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC

TA贡献1827条经验 获得超4个赞
我希望您正在切换到正确的iframe来获取元素...请参阅下面的示例
driver.switchTo().frame("content-frame")
driver.findElement(By.xpath("//div[@id='ember740']/div[2]/div/ol/li/div/button")
driver.switchTo().defaultContent()
添加回答
举报