Как захватить только часть идентификатора?
Я пытаюсь захватить идентификатор элемента, который будет генерироваться случайным образом. Я могу успешно захватить значение моего элемента id, как это...
| storeAttribute | //div[1]@id | variableName |
Теперь моя переменная будет что-то вроде...
divElement-12345
Я хочу удалить divElement-, чтобы у меня осталась переменная 12345, чтобы я мог использовать ее позже, чтобы выбрать связанный с ней элемент form-12345... что-то вроде этого:
| type | //tr[@id='form-${variableName}']/td/form/fieldset/p[1]/input | Type this |
Как я мог бы достичь этого?
2 ответа
У вас есть два варианта в Selenium, XPath и CSS Selector. Я читал, что CSS Selector лучше подходит для тестирования в FireFox и IE. Используя последнюю версию Selenium IDE (3/5/2009), я успешно использовал storeEval, который оценивает выражения Javascript, предоставляя вам доступ к строковым функциям javascript.
XPath:
storeAttribute | //div[1]@id | divID
storeEval | '${divID}'.replace("divElement-", "") | number
type | //tr[@id='form-${number}']/td/form/fieldset/p[1]/input | Type this
CSS Selector:
storeAttribute | css=div[1]@id | divID
storeEval | '${divID}'.replace("divElement-", "") | number
type | css=tr[id='form-${number}'] > td > form > fieldset > p[1] > input | Type this
В XPATH есть много функций, которые должны решить вашу проблему. Предполагая, что "divElement-" является константой, которая не изменится и что вы используете XPath 2.0, я бы предложил:
подстрока-после (Div[1]/@ идентификатор / текст (),"divElement-")