4

我想用 Selenium 测试 Liferay portlet,但问题是 Liferay 生成的元素 id 是动态的,并且似乎每次我进入 portlet 时它们都会改变。有人对我如何测试 portlet 有任何建议吗?

谢谢你的帮助。

4

2 回答 2

2

这将取决于您的元素的结构。有多种方法可以识别元素,而不仅仅是固定的 id。

如果您有动态元素 id,则尝试使用元素的一些其他属性来唯一标识元素,例如 text() 或 name 等...有时,id 也会以通用模式生成,在这种情况下您可以尝试将其用于例如 //div[contains(@id,'fixedpart')] 或 //div[starts-with(@id,'fixedpart')]

于 2013-02-16T06:57:44.120 回答
0

我建议使用新的 HTML5 属性,例如 data-*,例如对于某个

<div data-selenium-test = "foo"></div>

然后用硒抓住这个元素:

//div[@data-selenium-test='foo']
于 2016-09-12T06:33:45.377 回答