2013-04-16 15 views
15

Di seguito è riportato il codice html ..movimentazione iframe con capibara rubino

<iframe id="I0_1366100881331" frameborder="0" width="100%"> 
<div class="ZRa"> 
<span id="button" class="hAa Qo Bg" tabindex="0" role="button" title="" aria-  label="Click here to publicly +1 this." aria-pressed="false"> 
</div> 
</iframe>  

Nello scenario precedente, voglio passare in IFRAME (iframe id = "I0_1366100881331") per eseguire alcune azioni sul SPAN presente in quel IFRAME. Ho provato con la maggior parte dei casi, ma senza risultato: (... qualcuno si prega di aiuto

voglio la soluzione per cetriolo utilizzando solo rubino capibara ..

. Nota: Ho provato con seguente codice, ma non . risultato

page.driver.browser.switch_to.frame "I0_1366100881331"

+0

Eventuali duplicati: http://stackoverflow.com/questions/11909149/how-can-i-switch-between-two-frames-with-capybara –

risposta

11

Penso che si può provare a utilizzare il metodo:

within_frame 'id' do 
    <code for dealing with iframe entries> 
end 
+1

'id' non è statico. Sta cambiando ogni volta (aggiornamento della pagina), quindi come possiamo gestire l'iframe usando 'id'. Potete suggerire per favore? –

+0

Vecchio post, ma devi essere stato in grado di ottenere l'ID del frame in qualche modo dato il codice di esempio che hai postato sopra. – Hannele

25
within_frame(find('<css rule>')) do 
    <code for dealing with iframe entries> 
end 
.210
+0

Questo ha funzionato bene per me, e dal momento che usa 'trova' Capybara aspetterà che il frame appaia sulla pagina se necessario. – user01380121

0

può avere questo codice:

withinframe((:xpath,"//div")) do 
#code 
end 
+0

Spiega il tuo codice – quinz