【问题标题】:Ruby, Cucumber and Watir Automation Scripting BasicsRuby、Cucumber 和 Watir 自动化脚本基础
【发布时间】:2015-10-31 11:12:14
【问题描述】:

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

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

我的看起来像这样我已经尝试过 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)时,我实际上可以利用哪些特征来调用按钮、text_field 或链接?

3) 我非常了解 html 和 css。有人能解释一下如何正确利用 xpath 吗?

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

【问题讨论】:

    标签: ruby automation cucumber watir


    【解决方案1】:

    此脚本中有许多错误。这是一个工作版本:

    # 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
    

    在识别page elements 方面,通常认为使用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')
    

    如果您还没有,我建议您查看http://watirwebdriver.com/https://github.com/watir/watir/wiki。如果您对使用 xpath 查找棘手的元素感到好奇,请查看 https://jkotests.wordpress.com/2012/08/28/locate-element-via-custom-attribute-css-and-xpath/.

    【讨论】:

    • 哇,兄弟,非常感谢您提供的一些非常好的信息,我实际上已将其用作一些基本脚本的参考,并且效果非常好。
    • 我还有一个问题要问你。我正在尝试将某些事情自动化作为练习,例如向家人发送感谢电子邮件。我登录并一直到 gmail 收件箱,但无法弄清楚如何引用“撰写”按钮。我想知道你能不能帮我解决这个问题?另外我的另一个问题是浏览器或网站不会让您自动化某些事情,或者总有办法引用任何 html 元素?
    • 最好的办法是提交一个新问题,并使用重现问题所需的最少代码。否则,信息会在 cmets 中丢失。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-07
    • 1970-01-01
    • 1970-01-01
    • 2011-02-13
    • 2011-03-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多