在Selenium IDE中使用通配符

时间:2012-02-29 02:21:26

标签: xpath wildcard selenium-ide

我对自动化有点新意,并且我正在自动学习所有内容,所以请原谅我,如果我的术语有点偏离。我一直在寻找这个问题的答案,而我似乎找不到任何东西。我认为这是我的小词汇,无论如何... ...

我正在尝试编写一个测试,通过使用录像机执行完成教程所需的所有操作。但是,对于一个特定步骤,元素ID会发生变化。例如,我正在尝试点击的ID是:

//li[@id='message_661119']/div[2]/div[2]/a/img

但是,对于正在执行教程“quest”的每个新用户,id的数量会发生变化。

有没有让Selenium识别或使用通配符?例如:

//li[@id='message_******']/div[2]/div[2]/a/img

当然,上面的例子不起作用。

任何建议都会非常有帮助。谢谢!!

2 个答案:

答案 0 :(得分:9)

您可以使用starts-with()

//li[starts-with(@id, 'message_')]/div[2]/div[2]/a/img

这是Selenium starts-with()文档中Locating Techniques中提到的示例之一。

答案 1 :(得分:1)

在Selenium IDE中的命令的Target字段中,您可以看到message_123123,单击下拉列表并选择与xpath:idRelative相关的选项,或者如果此选项不起作用,则尝试其他不包含烦人的选项message_123123所以这样你就可以通过它的位置而不是id来识别网页元素。我这样解决了我的问题