利用selenium自动化登录淘宝
Posted GarVicker
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用selenium自动化登录淘宝相关的知识,希望对你有一定的参考价值。
#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自动化登录淘宝的主要内容,如果未能解决你的问题,请参考以下文章
利用Selenium添加cookie实现自动登录(fofa)