赞
踩
selenium介绍
selenium最初是一个自动化测试工具,而爬虫中使用它主要是为了解决requests无法直接执行JavaScript代码的问题 selenium本质是通过驱动浏览器,完全模拟浏览器的操作,比如跳转、输入、点击、下拉等,来拿到网页渲染之后的结果,可支持多种浏览器
环境安装
下载安装selenium
1 |
|
谷歌浏览器驱动程序下载地址:
http://chromedriver.storage.googleapis.com/index.html
使用示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
|
浏览器创建
Selenium支持非常多的浏览器,如Chrome、Firefox、Edge等,还有Android、BlackBerry等手机端的浏览器。另外,也支持无界面浏览器PhantomJS。
1 2 3 4 5 6 7 |
|
元素定位
webdriver 提供了一系列的元素定位方法,常用的有以下几种:
定位一个元素 | 定位多个元素 | 含义 |
---|---|---|
find_element_by_id | find_elements_by_id | 通过元素id定位 |
find_element_by_name | find_elements_by_name | 通过元素name定位 |
find_element_by_xpath | find_elements_by_xpath | 通过xpath表达式定位 |
find_element_by_link_text | find_elements_by_link_tex | 通过完整超链接定位 |
find_element_by_partial_link_text | find_elements_by_partial_link_text | 通过部分链接定位 |
find_element_by_tag_name | find_elements_by_tag_name | 通过标签定位 |
find_element_by_class_name | find_elements_by_class_name | 通过类名进行定位 |
find_elements_by_css_selector | find_elements_by_css_selector | 通过css选择器进行定位 |
注意:
1、find_element_by_xxx找的是第一个符合条件的标签,find_elements_by_xxx找的是所有符合条件的标签。
2、根据ID、CSS选择器和XPath获取,它们返回的结果完全一致。
3、另外,Selenium还提供了通用方法find_element()
,它需要传入两个参数:查找方式By
和值。实际上,它就是find_element_by_id()
这种方法的通用函数版本,比如find_element_by_id(id)
就等价于find_element(By.ID, id)
,二者得到的结果完全一致。
实例演示
假如有一个web页面,通过前端工具查看到一个元素的属性是这样的。
1 2 3 4 5 6 7 |
|
通过id定位:
1 |
|
通过name定位:
1 |
|
通过class name定位:
1 |
|
通过tag name定位:
1 |
|
通过xpath定位,xpath定位有N种写法,这里列几个常用写法:
1 2 3 4 5 6 7 |
|
通过css定位,css定位有N种写法,这里列几个常用写法:
1 2 3 4 5 6 |
|
假如页面上有如下一组文本链接
1 2 |
|
通过link text定位:
1 2 |
|
通过partial link text定位:
1 2 3 |
|
控制浏览器
常用的控制浏览器操作的一些方法
方法 | 说明 |
---|---|
set_window_size() | 设置浏览器的大小 |
back() | 控制浏览器后退 |
forward() | 控制浏览器前进 |
refresh() | 刷新当前页面 |
clear() | 清除文本 |
send_keys (value) | 模拟按键输入 |
click() | 单击元素 |
submit() | 用于提交表单 |
get_attribute(name) | 获取元素属性值 |
is_displayed() | 设置该元素是否用户可见 |
size | 返回元素的尺寸 |
text | 获取元素的文本 |
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。