1

Watir を使用していくつかの変更を回帰テストします。メニューがテーブルのテーブルである、典型的な古いスタイルの Web ページ メニューの行を「クリック」したいと思います。この特定の例では、表のセルにメニュー項目が含まれており、1 つのセルのみで構成される行には onclick ハンドラーがあります。できると思った

cell = browser.element_by_xpath("//div[@id='Menu']/descendant::td[text()='New!'")

セルを使用して親行を取得しますが、メッセージが表示されます

c:/ruby/lib/ruby/1.8/rexml/parsers/xpathparser.rb:330:in 'Predicate': nil:NilClass の未定義メソッド `[]' (NoMethodError)

私には意味がありません。

4

2 に答える 2

1

答えを出す前にもっと詳細が必要です

一般的に言えば、テーブルを扱う方法はいくつかあります。行番号と列番号が常に同じであれば、絶対インデックスを使用できますが、多くの場合、そうではありません。

行のどこかに既知の (一意の) テキストがあり、セルの列がわかっている場合は、正規表現を使用して、既知の (および一意の) テキストで行を識別し、必要なセルを識別することができます。行内の「列」を介して。

browser.row(:text, /my search text/).cell(:index, 2) # 正規表現に一致するテキストを含む行の 2 番目のセル

于 2010-08-06T15:49:37.967 に答える
1

これを試して

cell = browser.div(:id,'Menu').cell(:text,'New!')
cell.click

そして、おそらく ']' を閉じるのを忘れましたか?

cell = browser.element_by_xpath("//div[@id='Menu']/descendant::td[text()='New!']")
于 2010-11-30T09:27:38.703 に答える