接于上篇《谈谈关于秒杀器》,本篇完成利用python的自动化测试selenium库完成淘宝的扫码登录。
工具:python2.7.13、selenium、IDE(PyCharm)、MacBook Pro
第一步:需要引进的包库
# -*- coding: UTF-8 -*-
import webbrowser as web
import os
from selenium import webdriver
import datetime
import time
from selenium.common.exceptions import NoSuchElementException
第二步:申明chromedriver的路径,并加载chromedriver。chromedriver的下载地址
chromedriver = "/usr/local/bin/chromedriver"
os.environ["webdriver.chrome.driver"] = chromedriver
driver = webdriver.Chrome(chromedriver)
第三步:最重要的部分,原理就是:打开淘宝首页寻找登录界面,再找到二维码登录界面。寻找二维码链接,找到二维码链接后大家可以把它显示出来,我是直接打开扫描的。然后去检测当前的url有没有跳转,跳转了就表示成功扫码登录了。后面我会加上二维码超时没扫描的功能。我直接上代码。有问题的可以给我留言,我来解决:
def login():
driver.get("https://www.taobao.com")
driver.maximize_window()
if driver.find_element_by_link_text("亲,请登录"):
driver.find_element_by_link_text("亲,请登录").click();
time.sleep(1)
if driver.find_element_by_id("J_QRCodeImg"):
print 'get the QRCodeImgUrl.....'
print driver.find_element_by_id("J_QRCodeImg").find_element_by_tag_name("img").get_attribute("src")
use_chrome_open_url(
driver.find_element_by_id("J_QRCodeImg").find_element_by_tag_name("img").get_attribute("src"))
while True:
try:
if driver.find_element_by_link_text("密码登录"):
print "请扫码登录..."
time.sleep(1)
except NoSuchElementException:
print "成功登录..."
print driver.current_url
break
time.sleep(1)
第四步:调用淘宝扫码登录模块:
login()