本帖最后由 Orvilla 于 2017-3-29 20:25 编辑
0x1
最近看selenium,直到用了发现如此的好玩,先看看百度百科给的解释:
Selenium[1]是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成 .Net、Java、Perl等不同语言的测试脚本。
除了上述的以外,它还可以模拟登录, 也可以变换成皮皮虫 使劲的爬~ 而且是操作可视化,它可以模拟人去完成代码命令,并且不是后台运行而是放在了台前,用户可以看到它是如何工作 如何完成的.超级好玩的一个框架
0x2
如果想安装,也很简单. linux环境下是
[AppleScript] 纯文本查看 复制代码sudo pip install selenium
它会自己下载安装 看到版本信息就代表着安装成功
然后测试成功否
[Python] 纯文本查看 复制代码from selenium import webdriver
driver = webdriver.Chrome() #初始化chrome浏览器
是不是报错了, 其实这是早就知道的, 不报错我直播撞墙 除非你提前安装好了chrome的驱动.
selenium支持很多浏览器,但是回车你会发现报错我比较钟爱firefox,但是这个浏览器关键出了点岔子 无奈使用chrome
如果是firefox的话 就是webdriver.firefox()
在使用chrome,光浏览器是不行的 还需要对应的驱动,chromedriver这个驱动
前方高能!!!!!!!!
下载chromedriver的时候请一定对准chrome浏览器的版本进行相对应的下载驱动, 否则你会怀疑人生..... 附带对应版本号
QQ图片20170329175028.png (40.13 KB, 下载次数: 79)
2017-3-29 17:52 上传
我的chrome是57 所以下载了2.28, 在linux内下载好直接解压
然后放入/usr/bin/下就ok
[Shell] 纯文本查看 复制代码cp chromedriver /usr/bin/
然后测试一波就好了
[Python] 纯文本查看 复制代码from selenium import webdriver
driver = webdriver.Cheome() #初始化浏览器
driver.get("http://www.baidu.com") #然后会自动访问百度,进入百度的搜索界面
driver.close() # 关闭浏览器
如果上面的完成了 说明下载的chromedriver没问题就可以继续下一步
0x3
模拟登录I春秋
本想模拟登录微博的 但是它无耻的都在跳转,无奈只好尝试i春秋. 环境 ubuntu 16.04 ,python 2.7.12
这次利用了webdriver的模块
[AppleScript] 纯文本查看 复制代码#! /usr/bin
import time #时间模块
form selenium import webdriver
url = 'http://www.ichunqiu.com'
browers = webdriver.Chrome() # 初始化chrome浏览器
browers.get(url) #打开url定义的内容
测试一下如果成功打开便继续下一步
完美OK 继续,webdriver的模拟登录思路很多吧,我写出一种是利用xpath的方法定位元素来达到模拟登录的结果
首先我们需要告诉python 你需要点击登录按钮,如果完成呢?
[Python] 纯文本查看 复制代码Login = browers.find_element_by_xpath(".//*[@id='setstorage']").click() #在xpath内的路径如果是用双引号包括了元素,那么整个路径需要单引号包裹,反之则双引号
xpath的来源有两种
1 利用chrome的开发工具看源代码
2 利用chrome的自带功能可复制xpath 但是它是根据原标签进行一层一层的寻找你要定位的元素 很麻烦.
如果是firefox的话有一个firexpath的插件,但是要先装firebug.
上述代码便可以进入i春秋的登录界面.但是当我还是按照原本普通的方法后发现报错,提示了元素不可见 看代码
[AppleScript] 纯文本查看 复制代码