ruby+watir 自动化测试如何判断页面是否存在某些字符
2个回答
展开全部
1、watir,"Web Application Testing in Ruby,是一款用Ruby脚本语言驱动浏览器的自动化测试工具,可以驱动那些作为Html页面被发送到Web浏览器端的应用程序。
2、判断页面是否存在某些字符,觉得方法有几个
1)利用检查点的contains_text:
例如:
(contains_text)
require 'watir'
ie = Watir::IE.start("http://www.baidu.com")
if ie.contains_text("hao123")
puts "Test passed. Page contains the text: hao123"
else
puts "Test failed! Page didn't contain text: hao123"
end
2)利用检查点中assert,即改成assert(ie.contains_text("hao123"))
3)你可以先看这个字符的节点所在位置,因为WEB页面都是HTML的元素节点组成,而其watir可以查或者其页面上元素的节点值,或者之后,你再用一个字符串匹配或者正则匹配匹配一下即可。
有什么问题和需要,可以给发邮件:test_sunny@hotmail.com(散步的SUN),我们再一起讨论~~
2、判断页面是否存在某些字符,觉得方法有几个
1)利用检查点的contains_text:
例如:
(contains_text)
require 'watir'
ie = Watir::IE.start("http://www.baidu.com")
if ie.contains_text("hao123")
puts "Test passed. Page contains the text: hao123"
else
puts "Test failed! Page didn't contain text: hao123"
end
2)利用检查点中assert,即改成assert(ie.contains_text("hao123"))
3)你可以先看这个字符的节点所在位置,因为WEB页面都是HTML的元素节点组成,而其watir可以查或者其页面上元素的节点值,或者之后,你再用一个字符串匹配或者正则匹配匹配一下即可。
有什么问题和需要,可以给发邮件:test_sunny@hotmail.com(散步的SUN),我们再一起讨论~~
追问
谢谢你的回答,可是我这边还有点问题,怎么执行都是走到else里面了,这是怎么回事呢?我的代码如下
require "test/unit"
require 'watir'
class Test_text < Test::Unit::TestCase
def test_text
ie = Watir::IE.start("http://www.baidu.com")
if ie.contains_text("百度")
puts "111111111111111111"
else
puts "22222222222222222"
end
end
end
1 tests, 0 assertions, 0 failures, 0 errors
追答
1、因为你的ruby里不识别中文...你要是去看错误信息的话,会看到
test.rb:6: invalid multibyte char (US-ASCII)
test.rb:6: invalid multibyte char (US-ASCII)
test.rb:6: syntax error, unexpected $end, expecting ')'
if ie.contains_text("百度")
2、另外一种方法:
if ie.text.include? ”hao123“
puts " Test Passed. Found the test string:
else
puts " Test Failed! Could not find the String'."
也是可以的
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询