第四课:l利用Watir-webdriver做一个简单的浏览器测试
上一篇 /
下一篇 2014-08-08 17:05:50
/ 个人分类:网页测试
好几天没有来更新了,原因在于我被一个网页的内容给卡在那里几天,今天早上得到好心同事的协助,才可以解决,虽然说是一个很简单的问题,但是对于新手而言,真是一个痛苦的挣扎过程,废话不多说,现在把浏览器的测试放在这里。 文件夹的建立还有一些其他的就不多说了,有问题可以参照之前的日志解决。
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: