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()
添加回答
舉報