Ruby,Cucumber和Watir Automation脚本基础知识

时间:2015-08-07 22:11:35

标签: ruby automation cucumber watir

非常感谢社区内的所有人和主持人如此冷静,并愿意如此迅速地提供帮助!只是想带领它。所以我真的可以使用我正在运行的这个基本自动化脚本的一些帮助。我正在尝试在Google.com上选择搜索栏并输入一些文字。我从朋友那里得到了一些帮助,但他们也被困住了。但它了解到这一点,我希望得到专家的一些帮助,只是问我有这些问题,因为谷歌没有屎!

1)如何选择搜索字段并输入文本。

Mine看起来像这样我尝试过xpath,不同的值,id的类。

require 'ruby' 
require 'watir-webdriver'

browser = Browser::browser.new :firefox 
browser.goto 'http://google.com'
browser.text_field(:value => 'Search').set('google search')

2)当我检查元素并找到该值的唯一特征(即href,id,title,class,name)时,我可以实际使用哪些来调用button,text_field或link?

3)我很了解html和css。有人可以解释一下如何正确使用xpath吗?

你们都摇滚,我觉得那里有很多人和我一样有这些相同的问题,而且在任何地方找不到该死的答案,所以我问你们所有的自动化专家,你介意放弃吗?知识炸弹并向我们学习?

1 个答案:

答案 0 :(得分:0)

此脚本中存在许多错误。这是一个有效的版本:

# require 'ruby'                         # don't require ruby
require 'watir-webdriver'                # corrected typo in gem name

browser = Watir::Browser.new :firefox    # corrected Browser::browser.new
browser.goto 'http://google.com'
browser.text_field(:title => 'Search').set('google search') # changed :value to :title

在识别matching JSON property names to constructor parameter names using reflection方面,通常认为使用id属性是一种很好的做法,因为它对页面来说是唯一的。您可以使用已列出的属性,但它们必须作为给定HTML元素的属性存在。 AFAIK,watir-webdriver支持使用大多数标准HTML标记属性进行定位,还可以根据索引,正则表达式以及组合多个定位符来定位元素。例如,您可以在上面的脚本中替换其中任何一个:

browser.text_field(:title => /Search/).set('google search')
browser.text_field(:class => 'gsfi').set('google search')
browser.text_field(:id => 'lst-ib').set('google search') 
browser.text_field(:name=> 'q', :class => 'gsfi').set('google search')

如果您还没有,我建议您查看page elementshttp://watirwebdriver.com/。如果您对使用xpath查找棘手的元素感到好奇,请查看 https://github.com/watir/watir/wiki