JAE*_*ONG 7 python selenium frame selenium-webdriver webdriverwait
我尝试在第一个 id 块中输入“abc”,在第二个密码块中输入“cdef”。
但是,出现了底部的错误代码。
from selenium import webdriver
driver.get('http://sugang.korea.ac.kr')
Run Code Online (Sandbox Code Playgroud)
我添加了隐式等待,以防止代码在页面完全加载之前执行。
driver.implicitly_wait(30)
添加用户名和密码的代码如下:
driver.find_element_by_name('id').send_keys('abc')
driver.find_element_by_name('pw').send_keys('cdef')
但我收到以下错误:
NoSuchElementException:消息:没有这样的元素:无法找到元素:{“method”:“id”,“selector”:“id”}
小智 10
当 Web 驱动程序看不到您尝试执行操作的元素时,通常会出现“没有此类元素”异常。
原因可能是:
您的 ID、名称、XPath 或 CssSelector 可能是错误的。
您的元素可能位于 iframe 内,因此 Web 驱动程序无法看到或检测到它。通过 Selenium 和 python 切换到 iframe
您的元素需要一段时间才能显示在 UI 上,因此您可以使用显式等待来解决此问题。请参阅5. 等待
用户名和密码字段位于 中frame,因此您必须:
您可以使用以下解决方案:
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
driver = webdriver.Firefox(executable_path=r'C:\\Utility\\BrowserDrivers\\geckodriver.exe')
driver.get("http://sugang.korea.ac.kr")
WebDriverWait(driver, 10).until(EC.frame_to_be_available_and_switch_to_it((By.NAME,"firstF")))
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input.input_login[name='id']"))).send_keys('abc')
driver.find_element_by_css_selector("input.input_login[name='pw']").send_keys("cdef")
Run Code Online (Sandbox Code Playgroud)浏览器快照:
| 归档时间: |
|
| 查看次数: |
28726 次 |
| 最近记录: |