zoukankan      html  css  js  c++  java
  • SeleniumWebdriver系列教程(2)————浏览器的简单操作

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

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

    如何打开一个测试浏览器

    做自动化测试一般情况下我们都需要首先打开测试浏览器,浏览器开启后我们方可"命令"浏览器去打开新页面,点击特定的链接,判断具体的逻辑等等。因此该操作为"万里长征的第一步",必须给以重视。具体代码如下。需要注意的是如果使用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
    # 使用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 = 'http://www.soso.com'
    dr.navigate.to url
    search_input = dr.find_element :id => 's_input'
    search_input.send_keys 'webdriver'
    search_input.submit
    match = dr.current_url.match(/\b\w+$/) 
    keyword = match[0] if match 
    

    如何返回当前页面的title

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

    其他方法

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

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

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

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

    深入讨论

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

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

    接下来

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

  • 相关阅读:
    深入正则表达式(0):正则表达式概述
    讲透学烂二叉树(二):图中树的定义&各类型树的特征分析
    讲透学烂二叉树(一):图的概念和定义—各种属性特征浅析
    Gzip之后继者Brotli浅析之CDN厂商的智能压缩,服务器Brotli设置
    ECMAScript进化史(1):​话说Web脚本语言王者JavaScript的加冕历史
    nginx网站限速限流配置——网站被频繁攻击,nginx上的设置limit_req和limit_conn
    linux添加用户,修改用户密码,修改用户权限,设置root用户操作
    nginx 限制ip访问,禁止非法域名指向本机ip——防止被别人绑定域名到自己IP的方法
    centos8 新增ssh自定义端口与屏蔽默认22端口。
    1g云主机升级centos8不满足centos 8 至少2g内存要求,linux虚拟内存来凑
  • 原文地址:https://www.cnblogs.com/nbkhic/p/2221341.html
Copyright © 2011-2022 走看看