【问题标题】:selenium.common.exceptions.TimeoutException: Message error sending text to username field within iframe using Selenium Pythonselenium.common.exceptions.TimeoutException:使用 Selenium Python 将文本发送到 iframe 中的用户名字段的消息错误
【发布时间】:2021-03-24 18:41:18
【问题描述】:

当我尝试使用 selellium 定位一个元素时,它失败了

driver = webdriver.Chrome(executable_path = r'./chromedriver.exe')

driver.get("http://eltiempo.com/login")
try:
    element = WebDriverWait(driver, 30).until(
        EC.presence_of_element_located((By.XPATH, "//*[@id='username']"))
    )

finally:
    driver.quit()

【问题讨论】:

  • 有什么理由在 id 选择器上使用 XPATH?。请尝试使用 id 选择器,id 在整个 DOM 中是唯一的,并且 id 选择器比 xpath 工作得更好。即使xpath works differently in different browsers,所以如果你想在所有机器id选择器中运行你的代码会更好

标签: python selenium xpath iframe css-selectors


【解决方案1】:

要将字符序列发送到 username 字段,因为该元素位于 <iframe> 内,因此您必须:

  • 诱导WebDriverWait 使所需的帧可用并切换到它

  • 诱导WebDriverWait 使所需的元素可点击

  • 您可以使用以下任一Locator Strategies

    • 使用CSS_SELECTOR

      driver.get("https://www.eltiempo.com/login")
      WebDriverWait(driver, 20).until(EC.frame_to_be_available_and_switch_to_it((By.CSS_SELECTOR,"iframe.iframe-login")))
      WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input[name='username']"))).send_keys("Nick Rondon@stackoverflow.com")
      
    • 使用XPATH:

      driver.get('https://www.eltiempo.com/login')
      WebDriverWait(driver, 20).until(EC.frame_to_be_available_and_switch_to_it((By.XPATH,"//iframe[@class='iframe-login']")))
      WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//input[@name='username']"))).send_keys("Nick Rondon@stackoverflow.com")
      
  • 注意:您必须添加以下导入:

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    
  • 浏览器快照:


参考

您可以在以下位置找到一些相关讨论:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-21
    • 2020-05-07
    • 2023-03-07
    • 2020-10-30
    • 2022-01-23
    • 2021-04-20
    • 1970-01-01
    • 2020-04-22
    相关资源
    最近更新 更多