使用Watir按钮元素的自动化

时间:2015-08-12 23:42:27

标签: ruby selenium automation watir

所以我一直在尝试使用Ruby的Watir自动化脚本。我试图尝试不同的网站,如Twitter,Gmail和雅虎。这是一个问题:我可以打开浏览器,登录,然后进入主页。在所有这些中,无论是每次使用适当的ID或类选择它时都会撰写新的电子邮件或推文,它会在终端中抛出错误,如此...

  

.rvm / gems / ruby​​-2.2.1 / gems / watir-webdriver-0.8.0 / lib / watir-webdriver / elements / element.rb:533:in assert_element_found': unable to locate element, using {:title=>"compose", :tag_name=>"button"} (Watir::Exception::UnknownObjectException) from /Users/xxx/.rvm/gems/ruby-2.2.1/gems/watir-webdriver-0.8.0/lib/watir-webdriver/elements/element.rb:505:in assert_exists'       来自/Users/xxx/.rvm/gems/ruby-2.2.1/gems/watir-webdriver-0.8.0/lib/watir-webdriver/elements/element.rb:114:in click' from yahoo_mail.rb:18:in compose_email&#39 ;       来自yahoo_mail.rb:27:在'

我的问题是,是否存在使用Watir自动化无法单击或选择的元素?

编辑:我怎样才能更具体地点击这个?在登录后编写任何东西时,我似乎在雅虎,Gmail和Twitter上获得了相同的结果。所以我怎么能点击这个按钮?

button id =" global-new-tweet-button"类型="按钮" class =" js-global-new-tweet js-tooltip btn primary-btn tweet-btn js-dynamic-tooltip"数据放置="底部"数据成分术语=" new_tweet_button">

2 个答案:

答案 0 :(得分:0)

Compose按钮的HTML基本上如下(注意:删除了id属性):

<button tabindex="0" data-action="compose" title="Compose" class="btn btn-compose">

您的stacktrace表示您正在使用此定位器:

{:title=>"compose", :tag_name=>"button"}

如果您将:title=>"compose"更改为:title=>"Compose",则应该开展业务。

答案 1 :(得分:0)

您是否尝试过以下代码?

button(id:'global-new-tweet-button').when_present.click

也许您点击了该按钮而未检查该页面上是否已存在该按钮。