码迷,mamicode.com
首页 > 其他好文 > 详细

利用selenium自动化登录淘宝

时间:2018-04-25 22:13:55      阅读:2354      评论:0      收藏:0      [点我收藏+]

标签:版本过低   exception   exce   inf   机器   滑动   需要   sele   port   

#encoding=utf-8

from selenium import webdriver

from selenium.webdriver.common.action_chains import ActionChains

from selenium.common.exceptions import UnexpectedAlertPresentException

import time,unittest, re

#登录页面

driver=webdriver.Firefox()

driver.get("https://login.taobao.com")

#进入账户密码模式

driver.find_element_by_xpath(‘/html/body/div/div[2]/div[3]/div/div/div[2]/div[4]/div/div[5]/a‘).click()

driver.find_element_by_xpath(‘/html/body/div/div[2]/div[3]/div/div/div[2]/div[3]/form/div[2]/span‘).click()

driver.find_element_by_id(‘TPL_username_1‘).send_keys(‘账号‘)

#账户名输入用的xpath,密码输入用By,皮一下

driver.find_element_by_id("TPL_password_1").click()

driver.find_element_by_id("TPL_password_1").send_keys(‘密码‘)

driver.find_element_by_id("J_SubmitStatic").click()#登录摁扭

 

至此按理说如果是用手工的话就已经可以登录了 ,然而在跑自动化时发现出现了滑块

技术分享图片

如上图所示,所以需要再次输入密码并且滑动滑块

 

#需要滑块,再次登录,先输入密码,再滑动滑块

driver.find_element_by_id("TPL_password_1").click()

driver.find_element_by_id("TPL_password_1").send_keys(‘密码‘)

time.sleep(1)

dragger=driver.find_element_by_id(‘nc_1_n1z‘)#.滑块定位

action=ActionChains(driver)

 

for index in range(500):

    try:

        action.drag_and_drop_by_offset(dragger, 500, 0).perform()#平行移动鼠标,此处直接设一个超出范围的值,这样拉到头后会报错从而结束这个动作

    except UnexpectedAlertPresentException:

        break

    time.sleep(11)  #等待停顿时间

 

driver.find_element_by_id(‘J_SubmitStatic‘).click()#重新摁登录摁扭

 

print "finish"

 

在一开始做这个脚本时经常出现如下状况,之后就不动了,即使手动拉动滑块也会报错从而无法登录。

技术分享图片

经小伙伴提醒,是因为浏览器版本过低导致,还以为是腾讯的机器人识别捣的鬼。

利用selenium自动化登录淘宝

标签:版本过低   exception   exce   inf   机器   滑动   需要   sele   port   

原文地址:https://www.cnblogs.com/garvicker/p/8947121.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!