所以我一直在尝试使用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:inclick' 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">
答案 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
也许您点击了该按钮而未检查该页面上是否已存在该按钮。