博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Selenium-Webdriver系列教程(2)————浏览器的简单操作
阅读量:7174 次
发布时间:2019-06-29

本文共 1868 字,大约阅读时间需要 6 分钟。

上一讲我们介绍了如何部署selenium 2.0的开发环境,这一讲我们将介绍如何使用selenium提供给我们的接口进行浏览器的简单操作。

本文将先介绍适合初级用户的一些常用方法,然后将对一些高级用法和实现源码进行稍微深入一些的分析。

如何打开一个测试浏览器

做自动化测试一般情况下我们都需要首先打开测试浏览器,浏览器开启后我们方可"命令"浏览器去打开新页面,点击特定的链接,判断具体的逻辑等等。因此该操作为"万里长征的第一步",必须给以重视。具体代码如下。需要注意的是如果使用chrome进行测试,那么必须下载安装chrome driver

require 'rubygems'require 'selenium-webdriver'# 打开firefoxdr = Selenium::WebDriver.for :firefoxdr = Selenium::WebDriver.for :ff# 打开iedr = Selenium::WebDriver.for :iedr = Selenium::WebDriver.for :internet_explorer# 打开chromedr = Selenium::WebDriver.for :chrome

如何打开1个具体的url

打开浏览器后我们需要转到我们的测试url。下面的代码可以达成这个目的。

require 'rubygems'require 'selenium-webdriver'dr = Selenium::WebDriver.for :firefox# 使用get方法dr.get url# 使用navigate方法,然后再调用to方法dr.navigate.to url

如何关闭浏览器

测试结束后往往需要关闭浏览器,下面的代码可以完成这个任务。

require 'rubygems'require 'selenium-webdriver'dr = Selenium::WebDriver.for :firefoxdr.get url# 使用quit方法dr.quit# 使用close方法dr.close

如何返回当前页面的url

有时候我们需要返回当前测试页面的url。比如在使用soso进行搜索时,当我们提交了搜索请求后,soso返回的url应该是包含我们所需要搜索的关键字的。

例如如果我们搜索webdriver,那么提交搜索请求后,页面应当转到url为http://www.soso.com/q?pid=s.idx&cid=s.idx&w=webdriver的页面,这时候我们取到这个页面的url,然后通过正则表达式去匹配一下就能够得到我们所搜索的关键字了。具体代码如下。

require 'rubygems'require 'selenium-webdriver'dr = Selenium::WebDriver.for :firefoxurl = 'http://www.soso.com'dr.navigate.to urlsearch_input = dr.find_element :id => 's_input'search_input.send_keys 'webdriver'search_input.submitmatch = dr.current_url.match(/\b\w+$/) keyword = match[0] if match

如何返回当前页面的title

require 'rubygems'require 'selenium-webdriver'dr = Selenium::WebDriver.for :firefoxurl = 'http://www.soso.com'dr.navigate.to urlputs dr.title

其他方法

  • window_handles : 返回当前所有打开浏览器的窗口句柄

  • window_handle : 返回当前的浏览器的窗口句柄

  • page_source : 返回当前页面的源码

  • visible? : 当前浏览器是否可见,并不保证支持所有浏览器

深入讨论

操作浏览器的方法主要封装在lib\selenium\webdriver\common\driver.rb文件中。

该文件定义了Selenium::WebDriver::Driver类。我们启动浏览器就是调用这个类的for方法。

接下来

这一节讨论了浏览器的简单操作,下一节我们将讨论如何在页面上执行js代码。

转载地址:http://imbzm.baihongyu.com/

你可能感兴趣的文章
RadioGroup控件实现单选题效果
查看>>
PL/SQL Developer使用技巧|F=Forwarding|
查看>>
工作三年的思考
查看>>
Java工具类 Apache Commons:commons-lang
查看>>
C++ 原来 const 中所使用的函数 必须 全都具有 const 才行
查看>>
浏览器中 for in 反射 对象成员 的差异
查看>>
关于Linux启动时挂载rootfs的几种方式
查看>>
vs2015 系统找不到指定的文件(异常来自HRESULT:0x80070002)问题的解决方法
查看>>
2018年总结
查看>>
34个漂亮的应用程序后台管理界面
查看>>
java JDK6的可变参数
查看>>
初入职场程序员的五大钻石法则
查看>>
Node.js学习笔记(一)概述
查看>>
split的3种方法
查看>>
忽略PNG透明区域的事件(AS/Flash)
查看>>
文本框只能输入正整数(大于0的整数)代码
查看>>
一步一个脚印学习WCF系列之WCF概要—WCF服务的创建与调用HelloWorld实例,通过配置文件方式(六)...
查看>>
只需简单一步,android自带的示例程序 BluetoothChat 变蓝牙串口助手
查看>>
thrift之TTransport层的内存缓存传输类TMemoryBuffer
查看>>
使用pull方式解析xml文件示例:
查看>>