?元素定位失败
【163网易云邮箱】登录实例:
from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get("http://mail.163.com/")
driver.find_element_by_name("email").send_keys("C18325528709")
time.sleep(3)
driver.find_element_by_name("password").send_keys("Cjm20010413.")
time.sleep(3)
driver.find_element_by_id("dologin").click()
time.sleep(6)
driver.close()
driver.quit()
出现的问题:在使用web元素进行定位时,出现NoSuchElementException错误
导致出现问题的可能原因:
页面网页嵌套了iframe
解决办法:
通过复为元素定位方法,定位到iframe,切换到对应的网页内:
from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get("http://mail.163.com/")
//新增下面两句
iframe1 = driver.find_elements_by_tag_name("iframe")[0] //定位iframe元素
driver.switch_to.frame(iframe1) //切换页面
driver.find_element_by_name("email").send_keys("C18325528709")
time.sleep(3)
driver.find_element_by_name("password").send_keys("Cjm20010413.")
time.sleep(3)
driver.find_element_by_id("dologin").click()
time.sleep(6)
driver.close()
driver.quit()
再次执行,成功登录邮箱。
|