Rick Johnson
Rick Johnson

Reputation: 89

Selenium IDE not finding xpath elements which contain variables during Run, but valid when editing/debugging

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.

Upvotes: 1

Views: 2953

Answers (2)

Rohit Ware
Rohit Ware

Reputation: 2002

May be while running, required element does not load when your command executes. That's why your are getting such error. Keep pause command before execution of storeText command

Upvotes: 0

Joand
Joand

Reputation: 342

Did you use the command waitForElementPresent before calling storeText ?

Upvotes: 0

Related Questions