順序付けられていないリスト内にある特定のリンクを取得しようとしています。ul 要素は、ページの h2 ヘッダーの下にあり、「アプリケーション ヘルプ」というテキストがあります。
私はこれを持っているwatirステップを持っています:
app_help_header = @browser.h2(:text => "Application help")
assert @browser.link(:after? => app_help_header, :text => link_text ).exists?
そして、2行目でこのエラーが発生しています:
# features/step_definitions/steps_86_application_help.rb:73
expected one of [String, Regexp], got #<Watir::Heading:0x50d30c54 located=
false selector={:text=>"Application help", :tag_name=>"h2"}>:Watir::Heading (Typ
eError)
./features/step_definitions/steps_86_application_help.rb:88:in `/^I click
on "(.*?)" in Application Help$/'
features\86_Application_Help.feature:22:in `And I click on "Ordering" in A
pplication Help'
なぜこれが起こっているのか誰にも分かりますか?:after 属性に使用できるセレクターの種類に制限はありますか?
http://wiki.openqa.org/display/WTR/HTML+Elements+Supported+by+Watirのドキュメントでは:after
、セレクターとして使用する際の制限について言及していません。
リンクを取得しようとしている HTML は次のとおりです。
<div class="application-help-summary module">
<h2 class="portlet-section-header">Application help</h2>
<div class="portlet-section-body">
<p>Browse help for assistance with: </p>
<ul class="bulleted">
<li>
<a href="/ordering-help">Ordering</a>
</li>
<li>
<a href="/managing-services-help">Managing services</a>
</li>
</ul>
</div>
</div>
私はWatirに指定しようとしています:「「アプリケーションヘルプ」でh2の後に発生するこのテキストのリンクを取得します
回避策として、上位レベルの div を指定してリンクを直接取得し、「アプリケーション ヘルプ」h2 の上に同じテキストのリンクがないことをコードが想定していることを指定します。