2011-08-18 11 views
7

Sto usando Capybara 1.0.0 con la configurazione di default.Capybara click_link a volte non funziona

click_link "un po 'di testo esistente" # - a volte-- non funziona. strano.

find_link "un testo esistente" # funziona sempre

Questo può essere un problema di temporizzazione; o forse no perché find_link funziona brillantemente ok.

Ho controllato il file di output prodotto tramite save_and_open_page, va bene lo stesso. Inoltre, ho aumentato il tempo di attesa, ecc. Ma, nemmeno aiutato.

Prima di accedere completamente alla fonte di Capybara. Cosa pensi che sia andato storto?

saluti

+0

prolly il problema è nel modo in cui localizzare elementi con XPath o CSS selettori? –

risposta

0

Ogni volta che ricevo problemi intermittenti con i miei test una delle prime cose che ho controllare è la sequenza in cui sono in esecuzione in.

A seconda di come avete impostato Rspec, è probabilmente randomizzando l'ordine in cui vengono eseguite le specifiche ogni volta che si esegue la suite. Ciò significa che a volte tutto passa e altre volte no.

Rspec emetterà un valore di inizializzazione che è possibile utilizzare per rieseguire i test nello stesso ordine a scopo di debug.

0

Provare a utilizzare questa sintassi click_link('', href: some_path).

0

Il collegamento può essere sovrapposto a un altro elemento (come la finestra Popup), oppure viene attivato da Ajax dopo un po 'di tempo dopo il caricamento della pagina. Dipende fortemente dal tipo di pagina con cui lavori.

Come una suggerimenti generali, mi sento di raccomandare di utilizzare cercatori direttamente, come:

# Note :visible => true, it will throw an error if element is overlapped 
    find(:xpath, "//a[.='some existing text']", visible: true).click 

    # Another approach 
    wait_until(15) { first(:xpath, "//a..", visible: true) }.click 
Problemi correlati