【问题标题】:How to click on link element with specific text using watir?如何使用 watir 点击带有特定文本的链接元素?
【发布时间】:2014-03-14 18:24:51
【问题描述】:

我无法使用 watir 点击文本链接“添加”:

页面:

<div id="divAdd" style="float: right">
    <a onclick="SwitchView('2')" style="color: #1B56A7; cursor: pointer;">Add</a>
</div>

女仆代码:

browser.link(:text =>"Add").click

例外:

Unable to locate element, using {:tag_name=>["a"], :text=>"Add"}

请帮我解决这个问题?

【问题讨论】:

  • 没有页面,很难确定为什么会发生。我的猜测可能是该元素尚未完成加载到页面中或位于框架中。我在blog 上总结了我知道的几个问题以及如何解决它们

标签: text click watir


【解决方案1】:

如果页面有很多 ajax 和 javascript 运行,您可能只需要稍等片刻,让客户端代码在从浏览器加载页面后完成呈现页面。

试试这个

browser.link(:text =>"Add").when_present.click

如果这不起作用,请确保该项目不在框架或其他东西中..

顺便说一句,如果页面上有多个带有“添加”文本的链接,那么您可能必须在链接之外指定一个容器,以便您识别所需的链接。例如。

browser.div(id: => "divAdd").link.when_present.click

如果

【讨论】:

  • 我必须添加require 'watir-webdriver/locators'。没有它我有一个错误NameError: uninitialized constant Watir::Locators
  • 这有点奇怪,你用的是什么版本的 Watir? (可能与最新版本有关,我从不需要添加该要求)
  • 对,原因是在 watir 版本中。我不知道为什么,但是从头开始安装给了我旧版本。
【解决方案2】:

这将是我的做法。

while browser.div(:class, 'containerDIV').a(:text, 'Add').exists? do
    browser.div(:class, 'containerDIV').a(:text, 'Add').click 
 end

【讨论】:

  • 第一次点击后会继续点击它。在我的工作站上,这意味着每秒 9 次。
猜你喜欢
  • 2020-08-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多