1

基本的なものが欠けている可能性は十分にありますが、これは私にとって新しい領域であり、いくつかのポインターを使用できます。RubyとWatirを使用して、すべてAJAXで構築されたWebアプリケーションを駆動/テストし始めています。多くのアイテムには明示的なクラス/IDがなく、開発チームはもちろんjQueryを使用してそれらにアクセスします。同じオブジェクトの値を使用/変更/チェックするために、jQueryをWatirに変換する方法を探しています。

たとえば、これを使用して、データグリッドの5番目の列に値があるかどうかを確認します。

$("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

すべてを1行で書くことができますが、読みやすくするためにここで分割しました。

于 2012-12-06T19:05:56.250 に答える
0

Pincersを使用することもできます。これは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

(開示:私はプラタナスで働いています。)

于 2015-08-21T20:59:09.903 に答える