0

我正在尝试编写一个脚本,该脚本将在进入站点时自动单击按钮。

该网站的HTML如下:

<span id="zolaDisclaimerButton" class="dijitReset dijitStretch dijitButtonContents" waistate="labelledby-zolaDisclaimerButton_label" wairole="button" dojoattachpoint="titleNode,focusNode" role="button" aria-labelledby="zolaDisclaimerButton_label" tabindex="0" title="I acknowledge this disclaimer... Let ZoLa begin!" style="-moz-user-select: none;">

我尝试了以下方法,但它们不起作用:

browser.span(:id, "zolaDisclaimerButton").click
browser.button(:id, "zolaDisclaimerButton").click

我该如何点击这些类型的按钮?有问题的 URL 是: http ://gis.nyc.gov/doitt/nycitymap/template?applicationName=ZOLA

编辑:这是我使用的代码:

require "watir"
browser = Watir::Browser.new
browser.goto "http://gis.nyc.gov/doitt/nycitymap/template?applicationName=ZOLA"
browser.span(:id, "zolaDisclaimerButton").click
puts "fin"

它导航到页面,不单击任何内容,然后打印“fin”(让我知道它已经完成)。不会抛出异常。

4

1 回答 1

1

如果页面没有及时加载,您可以添加等待 - 请参阅http://watirwebdriver.com/waiting/。这些等待方法将一直等待,直到满足条件或超过时间限制。它比使用更好,sleep因为它只等待需要的时间(而不是等待 2 秒来等待 1 秒内加载的内容)。

在这种情况下,when_present请在单击之前使用 span 上的方法:

require "watir"
browser = Watir::Browser.new
browser.goto "http://gis.nyc.gov/doitt/nycitymap/template?applicationName=ZOLA"
browser.span(:id, "zolaDisclaimerButton").when_present.click
puts "fin"
于 2013-07-30T16:00:57.130 回答