我完全有可能错过一些基本的东西,但这对我来说是一个新的领域,我可以使用一些指针。我开始使用Ruby和Watir来驱动/测试所有AJAX构建的Web应用程序。许多项目没有明确的类/ ID,开发团队当然使用jQuery来获取它们。我正在寻找一种方法将他们的jQuery转换为Watir来使用/修改/检查相同对象的值。
例如,他们使用它来查看数据网格的第五列中是否有值:
$("div.dataTable table tbody tr").has("td:eq(4):not(:empty)").length > 0
我将如何做类似的事情?
答案 0 :(得分: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
你可以把它全部写成一行,但为了便于阅读,我把它分解了。
答案 1 :(得分: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工作。)