2012-02-29 100 views
2

我对自动化有点新兴,并且正在学习一切自动教学,所以请原谅我,如果我的术语有点偏离。我已经搜索了大家对这个问题的回答,并且我似乎找不到任何东西。我认为这是我的小词汇量,当涉及到这个东西...无论如何...在Selenium IDE中使用通配符

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

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

然而,对于正在执行的教程“任务”,的id更改的数量每个新用户。

无论如何要让Selenium识别或使用通配符?例如:

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

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

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

回答

9

您可以使用starts-with()此:

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

它是在硒的文档Locating Techniquesstarts-with()提到的例子之一。

+4

男人,我会吻你,如果我可以。非常感谢。我一定会更彻底地查看定位技术。 <3 <3 <3 – btdeviant 2012-02-29 02:34:51

+2

你的链接已经死了,我不确定是否[this](http://docs.seleniumhq.org/docs/02_selenium_ide.jsp#locating-elements)指向相同的内容。 – rene 2015-04-24 14:13:34

+2

@rene:似乎没有,因为它没有提到'starts-with()'。看起来他们已经修改了他们的文档,因为文档在其网站上的任何地方都不再可用。 – BoltClock 2015-04-24 14:17:43

1

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

+0

隐藏得很好。对于寻找替代“目标”选择器非常有用。 – user18099 2017-06-01 08:40:48