Domanda

L'xpath dei miei elementi sta diventando estremamente difficile da leggere.

// div [@ id = 'main_content'] / div [2] / div [2] / div [2] / div [4] / table / tbody / tr [2] / td / form / fieldset / p [1] / input

Sarebbe bello se potessi memorizzare gran parte di ciò come variabile e usarlo in seguito in questo modo:

| assertElementPresent | $ {myForm}. / fieldset / p [1] / input |

È possibile qualcosa del genere? Renderebbe i miei test molto più facili da leggere!

È stato utile?

Soluzione

Devi davvero ancorare le tue espressioni di selenio negli ID degli elementi. Tra 2 mesi, nessuno avrà la più pallida idea di ciò a cui punta lo xpath, specialmente se il test viene interrotto nel momento in cui è necessario scoprirlo. Aggiungiamo sistematicamente ID all'elemento solo per facilitare i test. Abbiamo imparato ad accettare che scriviamo il codice java in un modo speciale per renderlo testabile, e penso che vada bene anche per HTML.

Altri suggerimenti

Potresti semplicemente scrivere:

store | //div[@id='main_content']/div[2]/div[2]/div[2]/div[4]/table/tbody/tr[2]/td/form | myForm
assertElementPresent | xpath=${myForm}/fieldset/p[1]/input

Come diceva Krosenvold, tuttavia, i lunghi percorsi x possono essere piuttosto fragili. Se sei preoccupato per la leggibilità del tuo codice e desideri che tutti i tuoi localizzatori si trovino in un unico file in cui è possibile apportare modifiche a cascata, ti consigliamo di utilizzare una mappa degli elementi dell'interfaccia utente.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top