I’m using Selenium IDE 1.7.2 and Firefox 10.0.2
In the page which I’m writing a test script for, there is a table cell with the following literal xpath value:
.//*[@id='tab-22-div']/table/tbody/tr[2]/td[7]/div
I have a variable named PDTabDiv which contains the value: 22
The Selenium IDE script step:
storeText | .//*[@id='tab-22-div']/table/tbody/tr[2]/td[7]/div | MyVar
works correctly both when executing the step in edit mode and when the step is executed after pressing Run. When I state that it works correctly, the cell’s value is stored in the MyVar variable and the step executes without error.
However, attempting several techniques to use a variable to drive the number within the ‘tab-22-div’ portion of the xpath do not result in the same success.
I can successfully produce a valid-looking xpath string using this approach:
storeExpression | .//*[@id='tab-${PDTabDiv}-div']/table/tbody/tr[2]/td[7]/div | MyXpath
The MyXpath variable does contain: .//*[@id=’tab-22-div’]/table/tbody/tr[2]/td[7]/div
However the following step, while successful in edit mode, reports the following error when the step executes after pressing Run:
STEP
storeText | xpath=${MyXpath} | MyVar
ERROR
[error] Element xpath=.//*[@id='tab-22-div']/table/tbody/tr[2]/td[7]/div not found
The Selenese type command did not seem to exhibit the issue though, I was able to run this step via Run and it always placed the value 100 in the correct field (which is in a cell):
type | xpath=.//*[@id='document.budget.budgetPeriod[0].budgetLineItem[${MyLoopIndex}].budgetPersonnelDetailsList[0].percentEffort'] | 100
Perhaps I’m not using the correct approach. Any assistance would be gratefully appreciated. A little background, I’m using the DataDriven plugin to process several records against a web site, and the locators rows differ each iteration.
May be while running, required element does not load when your command executes. That’s why your are getting such error.
Keep
pausecommand before execution ofstoreTextcommand