2013-06-12 4 views
6

私はdivの>ネストされた<を持っている:セレン>ウェブドライブ:XPathのことで、ネストされた要素を見つける方法(ルビー)

<div id="international-map"> 
<div id='a'> 
    <a> link a1 </a> 
    <a> link a2 </a> 
    <a> link a3 </a> 
    </div> 
    <div id='b'> 
     <a> link b1 </a> 
     <a> link b2 </a> 
    </div> 
</div> 

にはどうすれば「国際マップ」のすべてのリンクを得ることができますか?

私は2つのアプローチを試してみましたが、失敗した:(

  1. div= @driver.find_element(:id => 'international-map')
  2. [email protected]_elements(:xpath => "//div[@id='international-map']//div[@tag_name='a']")

は正しいXPath式(も、C#とJavaコードができます)

答えて

14

大丈夫です!

@driver.find_elements(:css,"div#international-map a").map(&:text) 
# => [" link a1 ", " link a2 ", " link a3 ", " link b1 ", " link b2 "] 

または

@driver.find_elements(:xpath,"//div[@id = 'international-map']//a").map(&:text) 
# => [" link a1 ", " link a2 ", " link a3 ", " link b1 ", " link b2 "] 
+0

チェーンにいくつかの方法find_element_ *の方法があります:あなたはまた、次のように#css#xpathを使用することができますか?フォームのselect要素にアクセスしようとしていますので、driver.find_element_by_tag_name( "form")のようなことをしたいのですが、find_element_by_css_selector( "number-of-people")ですが、エラーが発生しました。 – user137717

1

をありがとうは

です
//div[@id = 'international-map']//a/string() 
関連する問題