我们在模拟时会遇到,因为用户名和邮箱都在iframe需要切换到这里iframe;但是这个iframe id="x-URS-iframe156xxxxxx"后面的数字是一个时间戳。是唯一的,而且name我们可以通过它设置为xpath获取代码如下:
driver.switch_to.frame(driver.find_element_by_xpath("//iframe[starts-with(@id, 'x-URS-iframe')]"))
如果您不理解上述代码,请参考我写的代码xpath常用的定位方法有五种;CSDN
完整代码如下:
from selenium import webdriver import os,time driver = webdriver.Chrome(executable_path=r"C:\Users\think\Desktop\chromedriver") driver.get("https://mail.163.com/") driver.maximize_window() #解决多表单问题 driver.switch_to.frame(driver.find_element_by_xpath("//iframe[starts-with(@id, 'x-URS-iframe')]")) #登陆 time.sleep(3) # driver.find_element_by_name('email').send_keys('ygm1548090068@163.com') driver.find_element_by_xpath('//*[@name="email"]').send_keys('ygm1548090068@163.com') driver.find_element_by_name('password').send_keys('8845448ella@min') time.sleep(3) driver.find_element_by_xpath('//*[@id="dologin"]').click()