非常感谢社区内的所有人和主持人如此冷静,并愿意如此迅速地提供帮助!只是想带领它。所以我真的可以使用我正在运行的这个基本自动化脚本的一些帮助。我正在尝试在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吗?
你们都摇滚,我觉得那里有很多人和我一样有这些相同的问题,而且在任何地方找不到该死的答案,所以我问你们所有的自动化专家,你介意放弃吗?知识炸弹并向我们学习?
答案 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 elements和http://watirwebdriver.com/。如果您对使用xpath查找棘手的元素感到好奇,请查看 https://github.com/watir/watir/wiki