有没有办法在Selenium运行时动态获取元素的xpath

时间:2009-11-24 22:23:11

标签: java xpath selenium

有没有办法在运行期间返回Selenium中元素的xpath,每次返回页面时xpath都会更改?我需要从元素的xpath中提取一个随机数。

Ex:// div [@ id ='element_id-87462']其中87462是每次加载元素时的新随机数。我希望能够提取87462,以便识别对象。

3 个答案:

答案 0 :(得分:2)

使用xpath contains()函数。

storeAttribute | //div[contains(text(),'your known text here')]@id | myid
echo | ${myid}

如果您只想要数字部分,请添加一些javascript并替换“element_id-”部分。

storeAttribute | //div[contains(text(),'your known text here')]@id | myid
storeEval | var number = "${myid}".replace("element_id-","");number; | numid
echo | ${myid}
echo | ${numid}

答案 1 :(得分:1)

旁注:问题听起来像OP正在使用Wicket,它(半随机)生成元素ID。我们发现了覆盖Wicket行为的方法,并使用我们自己的ID生成器,这是确定性的,对于可测试性更实用。

答案 2 :(得分:0)

听起来你需要使用getAttribute来检索div的“id”属性。看看:

顺便说一句,xpath就是你用来查找元素或找到属性的东西,但是你对xpath本身并不感兴趣,你感兴趣的是div上的id属性。