1

我完全有可能遗漏了一些基本的东西,但这对我来说是一个新领域,我可以使用一些指针。我开始使用 Ruby 和 Watir 来驱动/测试一个完全由 AJAX 构建的 Web 应用程序。许多项目没有明确的类/ID,开发团队当然使用 jQuery 来获取它们。我正在寻找一种将他们的 jQuery 转换为 Watir 以使用/修改/检查相同对象的值的方法。

例如,他们使用它来查看数据网格的第五列中是否有值:

$("div.dataTable table tbody tr").has("td:eq(4):not(:empty)").length > 0

我将如何去做类似的事情?

4

2 回答 2

4

您可以使用以下方法在 Watir 中进行相同的检查:

#Get the rows of the table (assuming there is just one dataTable)
table_trs = browser.div(:class, 'dataTable').table.tbody.trs

#Find how many rows have data in the 5th cell
#  Note that both jQuery and Watir are 0-based index (ie 4 means 5th cell)
rows_with_data = table_trs.count{ |tr| tr.td(:index, 4).text != '' }

#Do your comparison
rows_with_data > 0

您可以将其全部写成一行,但为了便于阅读,我在这里将其拆分。

于 2012-12-06T19:05:56.250 回答
0

您也可以使用Pincers。它是一个小的 ruby​​ gem,就像 Watir 一样,但在 Webdriver 之上提供了一个类似于 jQuery 的 API。

例子:

require('selenium-webdriver')
require('pincers')
driver = Selenium::WebDriver.for :firefox
pincers = Pincers.for_webdriver driver
pincers.goto 'www.somesite.com'
pincers.css('a#link-id').click

(披露:我在 Platanus 工作。)

于 2015-08-21T20:59:09.903 回答