2013-06-12 9 views
6

Ho un nidificato <div>:Selenio> Web Drive: come trovare un elemento nidificato da XPath (ruby)

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

Come posso ottenere tutti i link in 'internazionale-map'?

Ho provato due approcci e fallito :(

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

ringraziamento (anche un codice C# e Java aiuta)

risposta

14

OK! È inoltre possibile utilizzare #css o #xpath come di seguito:

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

o

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

C'è qualche modo per la catena find_element_ * metodi? Sto cercando di accedere a un elemento select in un modulo, quindi voglio fare qualcosa come driver.find_element_by_tag_name ("form"). Find_element_by_css_selector ("number-of-people") ma ho ricevuto un errore. – user137717

1

L'espressione XPath corretta è

//div[@id = 'international-map']//a/string() 
Problemi correlati