Selenium IDE在运行期间找不到包含变量的xpath元素,但在编辑/调试时有效

时间:2012-03-28 23:11:36

标签: xpath selenium-ide

我正在使用Selenium IDE 1.7.2和Firefox 10.0.2

在我正在编写测试脚本的页面中,有一个带有以下文字xpath值的表格单元格:

.//*[@id='tab-22-div']/table/tbody/tr[2]/td[7]/div

我有一个名为PDTabDiv的变量,其中包含值:22

Selenium IDE脚本步骤:

storeText | .//*[@id='tab-22-div']/table/tbody/tr[2]/td[7]/div | MyVar

在编辑模式下执行步骤和按Run后执行步骤时都能正常工作。当我声明它正常工作时,单元格的值存储在MyVar变量中,并且步骤执行时没有错误。

但是,尝试使用变量来驱动xpath的“tab-22-div”部分中的数字的几种技术不会取得同样的成功。

我可以使用这种方法成功生成一个看起来很有效的xpath字符串:

storeExpression | .//*[@id='tab-${PDTabDiv}-div']/table/tbody/tr[2]/td[7]/div | MyXpath

MyXpath变量包含:.// * [/ id ='tab-22-div'] / table / tbody / str [2] /td [7] / div 但是,以下步骤在编辑模式下成功时,在按Run(运行)后执行步骤时报告以下错误:

STEP
storeText | xpath=${MyXpath} | MyVar

ERROR
[error] Element xpath=.//*[@id='tab-22-div']/table/tbody/tr[2]/td[7]/div not found

Selenese类型命令似乎没有表现出问题,我能够通过Run运行此步骤,它总是将值100放在正确的字段中(在单元格中):

type | xpath=.//*[@id='document.budget.budgetPeriod[0].budgetLineItem[${MyLoopIndex}].budgetPersonnelDetailsList[0].percentEffort'] | 100

也许我没有使用正确的方法。任何帮助将不胜感激。有一点背景,我正在使用DataDriven插件处理针对网站的多条记录,并且定位器行每次迭代都不同。

2 个答案:

答案 0 :(得分:0)

在致电waitForElementPresent之前,您是否使用了storeText命令?

答案 1 :(得分:0)

可能在运行时,执行命令时不会加载必需元素。这就是你得到这样的错误的原因。 在执行pause命令之前保留storeText命令