第四课:l利用Watir-webdriver做一个简单的浏览器测试

上一篇 / 下一篇  2014-08-08 17:05:50 / 个人分类:网页测试

   好几天没有来更新了,原因在于我被一个网页的内容给卡在那里几天,今天早上得到好心同事的协助,才可以解决,虽然说是一个很简单的问题,但是对于新手而言,真是一个痛苦的挣扎过程,废话不多说,现在把浏览器的测试放在这里。
   文件夹的建立还有一些其他的就不多说了,有问题可以参照之前的日志解决。


A.准备工作
1.如果要测试Chrome浏览器,就需要下载一个chromedriver放在你的文件夹里,版本一定要对应正确。然后在后面写到的case里面,引用一下这个路径就好了,FF和其他的浏览器不需要这些driver的就可以不用管,这里主要以chrome浏览器来测试,各位同学也可以自己写FF的例子。
2.了解一些watir常用的一些方法,以及怎么调用,这里就直接给出某位博主的文章链接,也是testing网站的,我觉得很有用:http://www.51testing.com/html/10/26810-833842.html

B.开始工作

Feature文件的步骤如下:
Feature:Google search
  Scenario: search for keyword
    Given I am on google home page
    When I search for "ThoughtWorks"
    Then I should be able to view the search result of "ThoughtWorks"


ruby代码如下:
# encoding: utf-8
ENV['PATH'] = 'D:\working\driver'#这里是我的driver的路径,你们的可以自己写自己的。
$LOAD_PATH.unshift(File.expand_path(File.dirname(__FILE__)))
require 'cucumber'
require "rubygems"
require "watir-webdriver"
require 'rspec'


Given(/^I am on google home page$/) do
  @browser = Watir::Browser.new :chrome
  @browser.goto("www.google.com")
end
When(/^I search for "(.*?)"$/)do |search_text|
 @browser.text_field(:name => "q").set(search_text)
@browser.button(:name => "btnK").click
end

Then(/^I should be able to view the search result of "(.*?)"$/)  do |result_text|
  @browser.text.should include(result_text)
  end

C.解决问题:
也许点击开始运行的同学,就会发现,怎么样都无法检索到结果页面的关键字,即使我们自己看到了,case就是没有办法过,细心的盆友可能会发现,也许是页面没有加载完,所以根本就无法检测到关键字!!!我就是被这个问题折磨了几天,下面给出两种解决方案,就是设置一个等待时间,让页面把所有的内容都加载完!
把sleep或者一个wait方法加在最后一个语句里面,改成如下的样子:
Then(/^I should be able to view the search result of "(.*?)"$/)  do |result_text|
  sleep(5)
  @browser.text.should include(result_text)
  end

或者
Then(/^I should be able to view the search result of "(.*?)"$/)  do |result_text|
  Watir::Wait.until { @browser.text.include? 'ThoughtWorks' }
  @browser.text.should include(result_text)
  end
当然为了让代码更加好看,还是用后面一种方面的好,哈哈,今天就更新到这里,晚上会去更新一个关于关键字 background 和数据表格的文章,希望会帮到有需要的同学。


TAG:

 

评分:0

我来说两句

Open Toolbar