2013-06-12 11 views
6

Ben iç içe bir <div> var:Selenyum> Web Sürücü: nasıl xpath ile iç içe maddeyi bulmak için (yakut)

<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> 

nasıl 'uluslararası-haritası' altındaki tüm bağlantıları alabilirim?

Ben iki yaklaşımı denedik ve :(

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

teşekkür ederim başarısız

cevap

14

Tamam!

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

veya

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

zincirine bir yolu find_element_ var mı * yöntemleri: Ayrıca #css veya aşağıda #xpath kullanabilir? Ben form.find_element_by_tag_name ("form") gibi bir şey yapmak istiyorum bir formda bir select eleman erişmeye çalışıyorum. Find_element_by_css_selector ("insanların sayısı") ama bir hata var. – user137717

1

doğru XPath ifadesini (hatta bir C# ve Java kodu yardımcı olur)

//div[@id = 'international-map']//a/string() 
İlgili konular