开发环境:python27+chrome+seleniumpython
首先配置好环境,须要的库是selenium,pip安装下便可web
而后是chrome浏览器,对应chromedriver.exe 按照本身的chrome版本下载相应的版本(放到脚本目录下) http://npm.taobao.org/mirrors/chromedriver/
chrome
准备工做就完成了shell
==============================================npm
需求分析:浏览器
此次接到客户需求是须要批量操做上下架,根据上架编码来操做,数量大概有几百个(人工操做无疑是要搞死人的)工具
分析了下需求,以为用selenium来模拟操做实现比较方便ui
那就开干吧!编码
1,首先是进行调试开发调试
写脚原本运行功能模块是很是蛋疼的,要是脚本出错,还得手动关闭chromedriver.exe,和浏览器
这里使用shell来调试开发,我的以为至关方便,出错了也不要紧,能够反复调试
首先导入库
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
而后建立一个driver对象并打开浏览器
chromedriver = "chromedriver.exe"
driver = webdriver.Chrome(executable_path=chromedriver)
driver.set_window_size(1280,800)
driver.get('https://myseller.taobao.com/home.htm')
输入完应该会打开浏览器并打开淘宝页面,扫描下二维码进入后台
这里我说下我经常使用的获取元素的方法
driver.find_element_by_xpath("xxxxxx")
你们有可能以为xpath很差写,其实不要紧,使用chrome的开发者工具,定位到元素后,直接能够拷贝xpath
操做方法:在须要定位的元素上面右键-检查,会直接跳到元素上面
在源代码上面右键,复制-复制xpath便可获取到这个元素,
而后用driver.find_element_by_xpath("xxxxxx")操做下就能获取到元素了,你们能够打印这个元素的text
print driver.find_element_by_xpath("xxxxxx").text 来看看获取的对不对
而后操做就比较简单了
进入到出售中的商品或者仓库中的商品
获取到1的输入框,而后输入内容,输入回车便可进行搜索操做
driver.find_element_by_xpath('//*[@id="outer-id"]').clear()#清除输入框内的内容
driver.find_element_by_xpath('//*[@id="outer-id"]').send_keys("1111")#输入上架编码
driver.find_element_by_xpath('//*[@id="outer-id"]').send_keys(Keys.ENTER)#输入回车键,等于按下回车进行搜索
而后定位到2处的选中框,点击勾选
driver.find_element_by_xpath('//*[@id="J_DataTable"]/div[2]/table/thead/tr[2]/td/div/input[2]').click()
再定位到3处的下架按钮,点击
driver.find_element_by_xpath('//*[@id="J_DataTable"]/div[2]/table/thead/tr[2]/td/div/button[1]').click()
这样就完成了一次操做,最后加入循环便可完成批量操做
在shell中调试完毕后输入driver.quit()便可关闭浏览器,结束调试,最后把操做过程的代码整合起来,加入各类状态判断(好比是否存在元素之类的)
上架操做也是如此
就能够完成脚本了,再用tk简单画个界面,pyinstaller打包一下,就完成了
=======================================================
结语:
python+selenium是很是方便的web自动化操做工具,彻底可使用此工具进行批量操做的脚本开发,提高效率