Вопрос

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

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

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

divElement-12345

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

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

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

Это было полезно?

Решение

В 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-селектор:

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]/@id/text(),"DivElement-")

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top