无法在iframe中的Selenium Python中定位元素

问题描述 投票:-1回答:1

下面是我的HTML代码。我已经尝试过使用xpath并仍然无法在创建帐户表单上找到元素的异常。HTML code

python selenium-webdriver xpath css-selectors webdriverwait
1个回答
0
投票

由于所需元素在<iframe>内,因此必须在该元素上调用click()

  • WebDriverWait表示为所需的frame_to_be_available_and_switch_to_it()
  • WebDriverWait表示为所需的element_to_be_clickable()
  • 您可以使用以下Locator Strategies中的任何一个:

    • 使用CSS_SELECTOR

      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()
      
  • Note:您必须添加以下导入:

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    

参考

您可以在以下位置找到几个相关的讨论:

© www.soinside.com 2019 - 2024. All rights reserved.