Я использую Selenium IDE 1.7.2 и Firefox 10.0.2
На странице, для которой я пишу тестовый скрипт, есть ячейка таблицы со следующим буквальным значением xpath:
.//*[@id='tab-22-div']/table/tbody/tr[2]/td[7]/div
У меня есть переменная с именем PDTabDiv, которая содержит значение: 22 * 1006 *
Шаг сценария Selenium IDE:
storeText | .//*[@id='tab-22-div']/table/tbody/tr[2]/td[7]/div | MyVar
работает правильно как при выполнении шага в режиме редактирования, так и при выполнении шага после нажатия кнопки «Выполнить». Когда я утверждаю, что он работает правильно, значение ячейки сохраняется в переменной MyVar, и этот шаг выполняется без ошибок.
Тем не менее, попытка нескольких методов использовать переменную для управления числом внутри части 'tab-22-div' в xpath не приводит к тому же успеху.
Я могу успешно создать корректную строку xpath, используя этот подход:
storeExpression | .//*[@id='tab-${PDTabDiv}-div']/table/tbody/tr[2]/td[7]/div | MyXpath
Переменная MyXpath содержит: .//*[@id='tab-22-div']/table/tbody/tr[2]/td[7]/div
Однако при успешном выполнении в режиме редактирования следующий шаг сообщает о следующей ошибке при выполнении шага после нажатия кнопки «Выполнить»:
STEP
storeText | xpath=${MyXpath} | MyVar
ERROR
[error] Element xpath=.//*[@id='tab-22-div']/table/tbody/tr[2]/td[7]/div not found
Команда Selenese type, похоже, не показала проблемы, хотя я смог выполнить этот шаг через Run, и он всегда помещал значение 100 в правильное поле (которое находится в ячейке):
type | xpath=.//*[@id='document.budget.budgetPeriod[0].budgetLineItem[${MyLoopIndex}].budgetPersonnelDetailsList[0].percentEffort'] | 100
Возможно, я не использую правильный подход. Любая помощь будет с благодарностью. Немного предыстории, я использую плагин DataDriven для обработки нескольких записей на веб-сайте, и строки локаторов отличаются на каждой итерации.