126邮箱登录自动化实例,有两个注意点:1需要定位到iframe框架内,2id为动态需要使用其他方式进行定位
1 driver.switch_to.frame(driver.find_element_by_xpath("//iframe[contains(@src, 'passport')]"))
切换到iframe框架内,使用Xpath进行定位链接,contains(a, b)为a包含b
2 driver.find_element_by_css_selector(".m-container").find_element_by_css_selector(".j-inputtext.dlemail.j-nameforslide")
从父class定位子class用以定位用户名输入框
from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get("http://www.126.com")
driver.switch_to.frame(driver.find_element_by_xpath("//iframe[contains(@src, 'passport')]"))
driver.find_element_by_css_selector(".m-container").find_element_by_css_selector(".j-inputtext.dlemail.j-nameforslide").clear()
driver.find_element_by_css_selector(".m-container").find_element_by_css_selector(".j-inputtext.dlemail.j-nameforslide").send_keys("username")
driver.find_element_by_css_selector(".m-container").find_element_by_css_selector(".j-inputtext.dlpwd").clear()
driver.find_element_by_css_selector(".m-container").find_element_by_css_selector(".j-inputtext.dlpwd").send_keys("username")
time.sleep(2)
driver.quit()
另:包含多个class名的对象时,可使用find_element_by_css_selector(".xx.xx.xx") 的方式