在iframe中找不到selenium Python中的元素
下面是我的HTML代码。我尝试过使用xpath,但仍然遇到一个异常,即无法在createaccount表单上找到元素。在iframe中找不到selenium Python中的元素,python,selenium-webdriver,xpath,css-selectors,webdriverwait,Python,Selenium Webdriver,Xpath,Css Selectors,Webdriverwait,下面是我的HTML代码。我尝试过使用xpath,但仍然遇到一个异常,即无法在createaccount表单上找到元素。 由于所需元素位于中,因此要在元素上调用单击(),您必须: 将所需的帧的WebDriverWait设置为可用,并将其切换为可用() 将所需元素的WebDriverWait设置为可单击() 您可以使用以下任一选项: 使用CSS\u选择器: WebDriverWait(driver, 10).until(EC.frame_to_be_available_and_switch_to
由于所需元素位于
中,因此要在元素上调用单击()
,您必须:
- 将所需的
帧的WebDriverWait设置为可用,并将其切换为可用()
- 将所需
元素的WebDriverWait设置为可单击()
- 您可以使用以下任一选项:
- 使用
:CSS\u选择器
WebDriverWait(driver, 10).until(EC.frame_to_be_available_and_switch_to_it((By.CSS_SELECTOR,"iframe#accountFrame[src='/account/frame/login/create']"))) WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input[placeholder='Email'][data-test='create-account-email']"))).click()
- 使用
:XPATH
WebDriverWait(driver, 10).until(EC.frame_to_be_available_and_switch_to_it((By.XPATH,"//iframe[@id='accountFrame' and @src='/account/frame/login/create']"))) WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//input[@placeholder='Email' and @data-test='create-account-email']"))).click()
- 使用
- 注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC
参考文献 您可以在以下内容中找到一些相关讨论: