ruby - 使用 ruby​​ watir 测试 html 表格元素是否存在

标签 ruby watir watir-webdriver

我想测试的是table元素是否存在?如果没有表,那么我只想结束脚本。但是,如果有一个表格,我想将其输出到 Excel。

该脚本正在测试两个网址:

http://www.mycounciltax.org.uk/results?postcode=EX99AE&search=Search

http://www.mycounciltax.org.uk/results?postcode=CV56bz&search=Search

第一个网址显示一个没有 html 表格的网页,第二个网址显示一个包含 html 表格元素的网页。

我尝试将以下脚本放在一起,但我认为这是不正确的。我确信我在测试表元素时犯了一个错误。

if browser.table.trs.collect {|tr| [tr[0].text, tr[1].text, tr[2].text]}.exists?
then content = browser.table.trs.collect {|tr| [tr[0].text, tr[1].text, tr[2].text]}

如果您从下面的脚本中删除上面的代码,它将运行,但当它找不到 html 表时就会失败。

require "watir-webdriver"
browser = Watir::Browser.new :ff
browser.goto "http://www.mycounciltax.org.uk/results?postcode=CV56BZ&search=Search"

if browser.table.trs.collect {|tr| [tr[0].text, tr[1].text, tr[2].text]}.exists?
then content = browser.table.trs.collect {|tr| [tr[0].text, tr[1].text, tr[2].text]}
require 'win32ole'

application = WIN32OLE.new('Excel.Application')

application.visible = TRUE
workbook = application.Workbooks.Add();
worksheet = workbook.Worksheets(1);
worksheet.visible

row = 1; column = 0
content.each do |array|
array.each do |element|
worksheet.Cells(1,1).offset(row,column).value = element #.offset(row,column)
column += 1
end
row += 1
column = 0
end

else end

browser.goto "http://www.mycounciltax.org.uk/results?postcode=EX99AE&search=Search"

if browser.table.trs.collect {|tr| [tr[0].text, tr[1].text, tr[2].text]}.exists?
then content = browser.table.trs.collect {|tr| [tr[0].text, tr[1].text, tr[2].text]}
require 'win32ole'

application = WIN32OLE.new('Excel.Application')

application.visible = TRUE
workbook = application.Workbooks.Add();
worksheet = workbook.Worksheets(1);
worksheet.visible

row = 1; column = 0
content.each do |array|
array.each do |element|
worksheet.Cells(1,1).offset(row,column).value = element #.offset(row,column)
column += 1
end
row += 1
column = 0
end

else end

我打算立即运行上面的代码。谁能指出我哪里出错了?我是 ruby​​ 和 watir 的新手:-)。

提前非常感谢。

最佳答案

有一个#exists?方法。

if browser.table.exists?
  # go on
end

关于ruby - 使用 ruby​​ watir 测试 html 表格元素是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9150144/

相关文章:

ruby - 解析嵌套 Ruby 数组/YAML 的最快方法

ruby - 如果 gem 安装不支持, native 扩展回退到纯 Ruby

ruby - 在 ruby​​ 1.9.3 上安装 iconv 失败

ruby-on-rails - Watir-Webdriver - 协议(protocol)不支持的地址族 - socket(2)

watir - 如何将文本输入到非标准输入元素

Ruby 对于 OS X 应用程序/iOS 应用程序开发实用吗?

ruby - 在 Watir Webdriver 中使用当前保存的 Cookie

cucumber - 如何在 cucumber 中使用 watir-webdriver 测试 404 错误?

Watir Webdrive 无法连接到正在运行的浏览器

ruby - watir 网络驱动程序 : Accessing elements using Indexing