这个没什么难的,主要就是需要区分静态id和动态id,
一.静态id可以直接通过id定位,动态id则需要通过xpath定位
from seleniumimport webdriver
from selenium.webdriver.support.uiimport WebDriverWait
import time
driver = webdriver.Chrome()#加载浏览器
driver.maximize_window()#最大化窗口
driver.implicitly_wait(10)
url ="https://vipmail.163.com/?from=fmail"
driver.get(url)
time.sleep(5)
#创建显示等待
wait = WebDriverWait(driver,20,0.2)
time.sleep(2)
driver.switch_to.frame(driver.find_element_by_xpath("http://iframe[starts-with(@id, 'x-URS-iframe')]"))
driver.find_element_by_name("email").send_keys("111")
注:
contains() 包含字符串**
starts-with() 以字符串开始
ends-with() 以字符串
二.没有id或者name属性可以通过tagname定位。需要注意的是:driver.find_elements_by()
from seleniumimport webdriver
from selenium.webdriver.support.uiimport WebDriverWait
import time
driver = webdriver.Chrome()#加载浏览器
driver.maximize_window()#最大化窗口
driver.implicitly_wait(10)
url ="https://mail.126.com/"
driver.get(url)
time.sleep(5)
#创建显示等待
wait = WebDriverWait(driver,20,0.2)
time.sleep(2)
driver.find_element_by_id("lbNormal").click()
#driver.switch_to.frame(driver.find_element_by_xpath("http://iframe[starts-with(@id, 'x-URS-iframe')]"))
driver.switch_to.frame(driver.find_elements_by_tag_name("iframe")[0])
driver.find_element_by_name("email").send_keys("******")
driver.find_element_by_name("password").send_keys("********")
driver.find_element_by_id("dologin").click()
time.sleep(3)
driver.quit()