Как захватить только часть идентификатора? - PullRequest
1 голос
/ 31 декабря 2008

Я пытаюсь захватить идентификатор элемента, который будет генерироваться случайным образом. Я могу успешно зафиксировать значение моего идентификатора элемента следующим образом ...

| storeAttribute | //div[1]@id | variableName |

Теперь моя переменная будет выглядеть примерно так ...

divElement-12345

Я хочу удалить 'divElement-', чтобы оставить переменную '12345', чтобы я мог использовать ее позже, чтобы выбрать элемент 'form-12345', связанный с ней ... 1007 *

| type | //tr[@id='form-${variableName}']/td/form/fieldset/p[1]/input | Type this |

Как я мог бы достичь этого?

Ответы [ 2 ]

4 голосов
/ 05 марта 2009

У вас есть два варианта в Selenium, XPath и CSS Selector. Я читал, что CSS Selector лучше подходит для тестирования в FireFox и IE. Используя последнюю версию Selenium IDE (05.03.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:

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
1 голос
/ 11 января 2009

В XPATH есть много функций, которые должны решить вашу проблему. Предполагая, что «divElement-» является константой, которая не изменится и что вы используете XPath 2.0, я бы предложил:

подстрока-после (Div [1] / @ идентификатор / текст (), "DivElement -")

...