2017-09-25 11 views
0

注文アイテムのリスト内にあるリンクをクリックしようとしています。Watirを使用して注文リスト内のリストアイテムの要素にアクセス

This is the HTML

リストは、最も視聴動画の順序です。

私は最初のリスト項目を選択しようとしているので、broswerがhrefにナビゲートします。

今、私はトップの話を選択する必要があり、コードの別の行に似ている

$website.element(:class => "gs-c-promo-heading nw-o-link gs-o-bullet__text gs-o-faux-block-link__overlay-link gel-pica-bold [email protected]").click 

を持って、正常に動作します。なぜこれが動作していないすべてのアイデア?

また、この注文リストのすべてのアイテムを取得して各リンクテキストを印刷するにはどうすればよいですか?

+0

"動作していない"とはどういう意味ですか?例外はありますか?そうでない場合は、あなたが見ている行動は何ですか? –

+0

申し訳ありません。私は '化合物クラス名は許可されていません'エラー – BIGJOHN

答えて

2

例外を再現できませんでした。しかし、例外があれば、答えは複合クラス名を削除することです - つまり、クラスロケータにスペースを入れることはできません。

ほとんどのクラスは一般的なように見えるので、削除される可能性があります。試してみることができます:

クラスが本当に重要な場合は、Watirの新しいマルチクラスロケータを使用できます。これは、セレンの複合クラスチェッカをトリガしない大きなXPathを構築します。すべての項目をつかむために

$website.element(:class => ["gs-c-promo-heading", "nw-o-link", "gs-o-bullet__text", "gs-o-faux-block-link__overlay-link", "gel-pica-bold", "[email protected]"]).click  

、私は記述的に見える彼らのdata-entityid属性に基づいてli要素を見つけます:

$website.lis(data_entityid: /most-popular-watched/).each do |li| 
    puts li.link.text 
end 

これは、第1のリンクをクリックするために、より説明的な方法かもしれません。

$website.li(data_entityid: /most-popular-watched/).link.click 
+0

優れています。どうもありがとうございました! – BIGJOHN

関連する問題