私は watir-WebDriver を使用して、Web サイトのテスト自動化を自動化しています。兄弟リンクにアクセスする必要があります。
このように見えます
何か > 何か 2 > 現在のページのタイトル (link1) (link2) (text1)
text1 のクラス ID を取得しました。link2 をクリックして、Something 2 に戻る必要があります。
どうすればこれを取得できますか。
私は watir-WebDriver を使用して、Web サイトのテスト自動化を自動化しています。兄弟リンクにアクセスする必要があります。
このように見えます
何か > 何か 2 > 現在のページのタイトル (link1) (link2) (text1)
text1 のクラス ID を取得しました。link2 をクリックして、Something 2 に戻る必要があります。
どうすればこれを取得できますか。
2人の兄弟の共通の親を見つけることができる場合は、その親に移動し、次のようなものを使用してそのポイントから要素を選択できます。
ソースhtml:
<tr>
<th>No. of films</th>
<td>7</th>
</tr>
スクレイプ(@bブラウザオブジェクトです)
@b.th(:text => "No. of films").parent.tds.first.text
#=> 7
elements_by_xpath で兄弟リンクを取得できると思います。
例
HTML ソース:
<a href="foo">バー</a><p class="baz">テキスト</p>
watir-webdriver スクリプト:
p(:class,'baz').elements_by_xpath('前の兄弟::*')[-1]
私が正しく理解していれば、divのようなコンテナ要素があり、その中に2つのリンクといくつかのテキストがあります。明確ではないのは、テキストが外側のコンテナに属しているのか、それとも独自のコンテナの内側にあるのかということです。テキストの「classid」(それはclass?またはid?)があると言うと、それはそれ自体のコンテナー要素にあると推測します。
その場合
browser.element(:class, 'value').parent.link(:index, 2).click
これは、DOMのより明確なモデルであるHTMLの実際のサンプルなしで実行できる最善の方法です。
(text1)が(link2)の子である場合は、次のことを試してください。
(text1).parent