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

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

如何打开一个测试浏览器

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

require
'rubygems'
require
'selenium-webdriver'
# 打开firefox
dr = Selenium::WebDriver.
for
:firefox
dr = Selenium::WebDriver.
for
:ff
# 打开ie
dr = Selenium::WebDriver.
for
:ie
dr = Selenium::WebDriver.
for
:internet_explorer #此处运行的时候可能有点问题, 所以少用为好
# 打开chrome
dr = Selenium::WebDriver.
for
:chrome

如何打开1个具体的url

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

require
'rubygems'
require
'selenium-webdriver'
dr = Selenium::WebDriver.
for
:firefox
url = "http://www.baidu.com" PS: 如果不加http, 则会出现错误。
# 使用get方法
dr.get url
# 使用navigate方法,然后再调用to方法
dr.navigate.to url

如何关闭浏览器

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

require
'rubygems'
require
'selenium-webdriver'
dr = Selenium::WebDriver.
for
:firefox
dr.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
:firefox
url =
''
dr.navigate.to url
search_input = dr.find_element
:id => 's_input'  PS: 根据ID来获取对象元素
search_input.send_keys
'webdriver'
search_input.submit
match = dr.current_url.match(/\b\w+$/)
keyword = match[
0
]
if
match
p keyword

如何返回当前页面的title

require
'rubygems'
require
'selenium-webdriver'
dr = Selenium::WebDriver.
for
:firefox
url =
''
dr.navigate.to url
puts dr.title

其他方法

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

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

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

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

深入讨论

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

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

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

你可能感兴趣的文章
Servlet和JSP的线程安全问题
查看>>
GBK编码下jQuery Ajax中文乱码终极暴力解决方案
查看>>
Oracle 物化视图
查看>>
PHP那点小事--三元运算符
查看>>
解决国内NPM安装依赖速度慢问题
查看>>
Brackets安装及常用插件安装
查看>>
Centos 7(Linux)环境下安装PHP(编译添加)相应动态扩展模块so(以openssl.so为例)
查看>>
fastcgi_param 详解
查看>>
Nginx配置文件(nginx.conf)配置详解
查看>>
标记一下
查看>>
IP报文格式学习笔记
查看>>
autohotkey快捷键显示隐藏文件和文件扩展名
查看>>
Linux中的进程
查看>>
学习python(1)——环境与常识
查看>>
学习设计模式(3)——单例模式和类的成员函数中的静态变量的作用域
查看>>
自然计算时间复杂度杂谈
查看>>
当前主要目标和工作
查看>>
使用 Springboot 对 Kettle 进行调度开发
查看>>
一文看清HBase的使用场景
查看>>
解析zookeeper的工作流程
查看>>