利用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"
在一开始做这个脚本时经常出现运行到滑块就不动了,即使手动拉动滑块也会报错从而无法登录。
经小伙伴提醒,是因为浏览器版本过低导致,还以为是腾讯的机器人识别捣的鬼。
最新文章
- jQuery获取margin-top和padding-top的值
- 使用IO流实现一个简单的小Dome
- RMQ模板
- EditText根据焦点弹出软键盘
- 用ISO C++实现自己的信号槽(Qt另类学习)
- AHB总线和APB总线
- 配置Raspbian 启用SPI I2C
- Android学习笔记- ButterKnife 8.0注解使用介绍
- PredictionIO+Universal Recommender快速开发部署推荐引擎的问题总结(1)
- cbp2make使用
- Java Swing 界面中文乱码问题解决(Idea环境)
- vue环境搭建+vscode
- python文件打开方式详解——a、a+、r+、w+区别
- 利用js代码:document.forms[0].approval.value=&#39;false&#39;,当点击 <;input type=";image";按钮向表单传递不同的参数。
- sphinx搜索 笔记
- CSS“隐藏”元素的几种方法的对比
- Skills CodeForces - 614D (贪心)
- chrome下uploadify导致页面崩溃
- itembase协同过滤的详细介绍
- LVS持久化