开发环境:python27+chrome+selenium
首先配置好环境,需要的库是selenium,pip安装下即可
然后是chrome浏览器,对应chromedriver.exe 按照自己的chrome版本下载相应的版本(放到脚本目录下) http://npm.taobao.org/mirrors/chromedriver/
准备工作就完成了
==============================================
需求分析:
这次接到客户需求是需要批量操作上下架,根据上架编码来操作,数量大概有几百个(人工操作无疑是要搞死人的)
分析了下需求,觉得用selenium来模拟操作实现比较方便
那就开干吧!
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自动化操作工具,完全可以使用此工具进行批量操作的脚本开发,提升效率