Selenium
一、任务描述
本实验任务主要对Selenium进行一些基本操作,通过完成本实验任务,要求学生熟练掌握Selenium的操作,并对selenium的基本操作进行整理并填写工作任务报告。
二、任务目标
1、掌握Selenium的使用
三、任务环境
Ubuntu16.04、Python2.7
四、任务分析
selenium 是一套完整的web应用程序测试系统,包含了测试的录制(selenium IDE),编写及运行(Selenium Remote Control)和测试的并行处理(Selenium Grid)。Selenium的核心Selenium Core基于JsUnit,完全由JavaScript编写,因此可以用于任何支持JavaScript的浏览器上。
selenium可以模拟真实浏览器,自动化测试工具,支持多种浏览器,爬虫中主要用来解决JavaScript渲染问题。
♥ 温馨提示 |
Selenium 2.0 = Selenium 1.0 + WebDriver。 |
五、任务实施
步骤1、环境准备
右击Ubuntu操作系统桌面,从弹出菜单中选择【Open in Terminal】命令 打开终端。
通过【cd /home】切换到home目录下。【ls】查看该目录下的所有内容。
![](https://showdoc.shiyanbar.com/Public/Uploads/2018-01-15/5a5b95aa33853.png)
【mkdir seleniumCopy】在home目录下创建seleniumCopy文件夹。
![](https://showdoc.shiyanbar.com/Public/Uploads/2018-01-15/5a5b95ff37959.png)
步骤2、Selenium安装
【pip install Selenium==3.0.1】是安装的方式。
Selenium2.x调用高版本浏览器会出现不兼容问题,调用低版本浏览器正常。
Selenium3.x调用浏览器必须下载一个类似补丁的文件,比如Firefox的geckodriver,Chrome的为chromedriver。
【tar -zxvf /home/soft/geckodriver-v0.17.0-linux64.tar.gz -C /home/soft/firefoxDriver/】解压Firefox的补丁压缩包。
![](https://showdoc.shiyanbar.com/Public/Uploads/2018-01-15/5a5b9ef62a83c.png)
【cd soft/firefoxDriver/】切换至解压的目录,【ls】查看解压的内容。
![](https://showdoc.shiyanbar.com/Public/Uploads/2018-01-15/5a5b9fd99e4c7.png)
【vim /etc/profile】配置环境变量,按键盘【i】进入编辑状态,在最后输入如下程序。
![](https://showdoc.shiyanbar.com/Public/Uploads/2018-01-15/5a5ba34e77ad5.png)
编辑完毕后,按【esc】退出编辑状态,【:wq】保存并退出编辑框,【source /etc/profile】刷新配置文件。
![](https://showdoc.shiyanbar.com/Public/Uploads/2018-01-15/5a5ba38f8f839.png)
【cd /home/seleniumCopy/】切换目录,【vim baiduSpider.py】回车后创建一个名为baiduSpider的Python文件。
![](https://showdoc.shiyanbar.com/Public/Uploads/2018-01-15/5a5ba41b930fb.png)
回车后进入编辑框内,按键盘【i】进入编辑状态,输入如下程序。
首先使用webdriver.Firefox()获取Firefox浏览器的驱动,调用get方法,打开百度首页,判断标题中是否包含百度字样,接着通过元素名称wd获取输入框,通过send_keys方法将网络爬虫填写其中,然后回车。延时3秒后,判断搜索页面是否有网络爬虫字样,最后关闭driver。(注释只是为了让界面展示,否则会一闪而过)。
![](https://showdoc.shiyanbar.com/Public/Uploads/2018-01-15/5a5ba6180819b.png)
编辑完毕后,按【esc】退出编辑状态,【:wq】保存并退出编辑框,【python baiduSpider.py】执行baiduSpider的Python文件。
效果如下所示。
![](https://showdoc.shiyanbar.com/Public/Uploads/2018-01-15/5a5ba6f45cb91.png)
步骤3、页面操作
【vim loginSelenium.py】回车后创建一个名为loginSelenium.py的python文件。
![](https://showdoc.shiyanbar.com/Public/Uploads/2018-01-15/5a5bb889481e2.png)
回车后进入编辑框内,按键盘【i】进入编辑状态,输入如下程序。
【driver.find_element_by_name(“username”)】通过元素name定位
【driver.find_element_by_xpath(“.//*[@id=’loginForm’]/input[2]”)】通过xpath定位
【username.send_keys(“shiyanbar”)】写入用户名
【password.send_keys(“simple”)】写入密码
【login_button.click()】模拟点击登录。
![](https://showdoc.shiyanbar.com/Public/Uploads/2018-01-15/5a5bbb150fb13.png)
编辑完毕后,按【esc】退出编辑状态,【:wq】保存并退出编辑框,【python loginSelenium.py】执行loginSelenium的Python文件。
弹出的浏览器会输入用户名和密码进行提交。
![](https://showdoc.shiyanbar.com/Public/Uploads/2018-01-15/5a5bbb86a3ca8.png)
login.html网页中存在下拉选项卡,【vim loginSelenium.py】再次编辑文件。对下拉选项卡进行操作。修改程序如下。
首先获取select元素,也就是下拉选项卡。然后轮流设置了select选项卡中的每一个option选项。
![](https://showdoc.shiyanbar.com/Public/Uploads/2018-01-15/5a5bd8e0697b1.png)
编辑完毕后,按【esc】退出编辑状态,【:wq】保存并退出编辑框,【python loginSelenium.py】执行loginSelenium的Python文件。
下拉框会显示所有选项。
![](https://showdoc.shiyanbar.com/Public/Uploads/2018-01-15/5a5bd92a261e7.png)
但是并不是一个非常有效的方法。在WebDriver中提供了一个叫Select的方法。
【vim loginSelenium.py】再次编辑文件。对下拉选项卡进行操作。修改程序如下。
可以根据索引、文字、value值来选择选项卡中的某一项。
![](https://showdoc.shiyanbar.com/Public/Uploads/2018-01-15/5a5bdb8a5a37e.png)
编辑完毕后,按【esc】退出编辑状态,【:wq】保存并退出编辑框,【python loginSelenium.py】执行loginSelenium的Python文件。
下拉框会显示索引为2的选项。
![](https://showdoc.shiyanbar.com/Public/Uploads/2018-01-15/5a5bdbdb551ef.png)