利用selenium自动化登录淘宝

2018/04/25 20:42
阅读数 63

#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"

 

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

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

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部