我对自动化有点陌生,我学的都是自动教学,所以如果我的术语有点偏离,请原谅我。我到处找这个问题的答案,似乎什么也找不到。我想这是我的小词汇量.总之..。
我正在尝试编写一个测试,使用记录器执行完成教程所需的所有操作。但是,对于一个特定步骤,元素ID会发生更改。例如,我尝试单击的ID是:
//li[@id='message_661119']/div[2]/div[2]/a/img但是,对于每个执行教程“任务”的新用户,id的数量都会发生变化。
是否有必要让Selenium识别或使用通配符?示例:
//li[@id='message_******']/div[2]/div[2]/a/img当然,上面的例子不起作用。
任何建议都是非常有用的。谢谢你!!
发布于 2012-02-29 02:25:01
您可以为此使用starts-with():
//li[starts-with(@id, 'message_')]/div[2]/div[2]/a/img这是Locating Techniques中在Selenium的starts-with()文档中提到的例子之一。
发布于 2013-05-24 03:56:22
在Selenium中命令的目标字段中,您可以看到message_123123,单击下拉列表,然后选择一个与xpath相关的选项:idRelative,或者如果这个选项不能工作,那么尝试另一个选项,这些选项不包括那个烦人的message_123123,所以这样您就可以通过它的位置而不是id来识别网页元素。我就这样解决了我的问题
https://stackoverflow.com/questions/9492726
复制相似问题