簡體   English   中英

selenium.common.exceptions.TimeoutException:使用 Selenium ZA7F1735426B93273 將文本發送到 iframe 中的用戶名字段的消息錯誤

[英]selenium.common.exceptions.TimeoutException: Message error sending text to username field within iframe using Selenium Python

當我嘗試使用 sellium 定位一個元素時,它失敗了

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()

要將字符序列發送到用戶名字段,因為元素位於<iframe>中,因此您必須:

  • 誘導WebDriverWait使所需的幀可用並切換到它

  • 誘導WebDriverWait使所需元素成為可點擊的。

  • 您可以使用以下任一定位器策略

    • 使用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
  • 瀏覽器快照:

埃爾蒂姆波


參考

您可以在以下位置找到一些相關的討論:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM