Domanda

Voglio archiviare parte di un ID e buttare via il resto. Ad esempio, ho un elemento html con un id di "element-12345". Voglio eliminare "element-" e mantenere "12345". Come posso farlo?

Posso catturare ed echo il valore, in questo modo:

| storeAttribute | //pathToMyElement@id | myId |
| echo | ${!-myId-!} | |

Quando eseguo il test, ottengo qualcosa del genere:

| storeAttribute | //pathToMyElement@id | myId |
| echo | ${myId} | element-12345 |

Sto registrando con l'IDE Selenium e copiando il test su Fitnesse, usando l'apparecchiatura Selenium Bridge. Il problema è che sto usando un database pulito ogni volta che eseguo il test, con ID casuali che devo acquisire e usare durante il mio test.

È stato utile?

Soluzione

La soluzione è utilizzare la funzione JavaScript replace () con storeEval :

| storeAttribute | //pathToMyElement@id                                   | elementID |
| storeEval      | '${elementID}'.replace("element-", "")                 | myID      |

Ora se echo myID ottengo solo l'ID:

| echo | ${myID} | 12345 |

Altri suggerimenti

/ elemento - (\ d +) / I

È un'espressione regolare che catturerebbe i numeri dopo il trattino.

Qualcosa del genere potrebbe funzionare:

| storeAttribute | fn:replace(//pathToMyElement@id,"^element-","") | myId |

Per eseguire regex è necessario XPath 2.0 - non so quale versione implementa Selenium.

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