> 我们可以
使用python通过ssh或者api操作网络设备,但是有时候需要web操作,可以使用selenium来实现
自动化操作
# selenium介绍
selenium 是
一个web的
自动化测试工具,不少学习
功能自动化的同学开始首选selenium ,相因为它相比QTP有诸多有点:
* 免费,也不用再为破解QTP而大伤脑筋
* 小巧,对于不同的语言它只是
一个包而已,而QTP需要下载安装1个多G 的程序。
* 这也是最重要的一点,不管你以前更熟悉C、 java、ruby、python、或都是C# ,你都可以通过selenium完成
自动化测试,而QTP只
支持VBS
*
支持多平台:windows、linux、MAC ,
支持多浏览器:ie、ff、safari、opera、chrome
*
支持分布式测试用例的执行,可以把测试用例分布到不同的测试机器的执行,相当于分发机的
功能。
可以直接通过pip安装selenium
```python
pip install selenium
```
## selenium ide
Selenium IDE实现为Firefox扩展,在测试脚本上提供记录和回放
功能。 它允许测试人员以HTML,Java,Ruby,RSpec,Python, C# ,JUnit和TestNG等多种语言导出录制的脚本。 可以在Selenium RC或Webdriver中使用这些导出的脚本。
在使用selenium ide后,我们就不需要对html和web前端的便签进行定位操作,简化selenium使用,降低门槛,我们只要吧ide中记录的操作顺序使用脚本写入即可。
selenium同时
支持chrome浏览器,下载和使用详细间官网文档
https://www.selenium.dev/selenium-ide/docs/en/introduction/getting-started
完成selnenium ide的chrome
插件安装后,如下所示

使用
效果如下:

只要记录对应的步骤即可,以下是打开
一个baidu
搜索的例子



以下就是对应元素的操作记录

## webdrive
Selenium WebDriver是Selenium Tool套件中最重要的组件。 最新版本“Selenium 2.0”与WebDriver API集成,提供更简单,更简洁的编程接口。
在WebDriver中,可以使用任何
支持的编程语言开发测试脚本,并且可以在大多数现代Web浏览器中直接运行。WebDriver
支持的语言
包括C#,Java,Perl,
PHP,Python和Ruby

根据自己的浏览器下载对应的webdrive,我用的是chrome
https://chromedriver.chromium.org/downloads

# selnium简单使用
# 安装selenium
```shell script
pip install selenium
```
## 测试
创建baidu.py,输入以下
内容
```python
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('https://www.baidu.com')
print(driver.title)
driver.quit()
```
如果执行报错,需要安装对应驱动
## selenium3 浏览器驱动
当selenium
升级到3.0之后,对不同的浏览器驱动进行了规范。如果想使用selenium驱动不同的浏览器,必须单独下载并设置不同的浏览器驱动。
Firefox浏览器驱动:geckodriver
Chrome浏览器驱动:chromedriver , [taobao备用地址](https://npm.taobao.org/mirrors/chromedriver)
IE浏览器驱动:IEDriverServer
Edge浏览器驱动:MicrosoftWebDriver
Opera浏览器驱动:operadriver
PhantomJS浏览器驱动:phantomjs
选择的时候注意要选择与自己的浏览器匹配的版本下载
将下载的
文件解压,放在如下位置
unzip chromedriver_linux64.zip
/usr/bin/chromedriver
给予执行权限
chmod +x /usr/bin/chromedriver
## selenium 元素定位
提供了8种定位方式
- id
- name
- class name
- tag name
- link text
- partial link text
- xpath
- css celector
这8种定位方式在selenium中的对应的方位为
- find_element_by_id()
- find_element_by_name()
- find_element_by_class_name()
- find_element_by_tag_name()
- find_element_by_link_text()
- find_element_by_partial_link_text()
- find_element_by_xpath()
- find_element_by_css_selector()
## 定位
方法的
用法
假如我们有
一个Web
页面,通过前端工具(如,Firebug)查看到
一个元素的
属性是这样的。
```html
<body link="#0000cc">