之前尝试用requests.post的办法登录126邮箱,但是126的邮箱在传递密码是是实时加密,没有解决掉实时加密的问题,因此失败;
最近在学习selenium,发现用selenium后登录126邮箱相当简单,附上代码,供需要的朋友参考
from selenium import webdriver
import time
def emaillogin(url,username,userpassword):
driver=webdriver.Chrome()
driver.get(url)
# 等待url加载
driver.implicitly_wait(10)
try:
driver.find_element_by_id("switchAccountLogin").click()
except Exception as e:
print(e.__context__)
pass
# 对于iframe中的元素,必须切换到iframe中才能定位
driver.switch_to.frame(0)
driver.find_element_by_name("email").send_keys(username)
driver.find_element_by_name("password").send_keys(userpassword)
driver.find_element_by_id("dologin").click()
time.sleep(1)
# 退出邮箱
driver.find_element_by_id("_mail_component_128_128").click()
driver.quit()
对于iframe的定位有很多方法,在上述代码中采用的