我正在为客户端开发一个项目,他们将升级到Siebel Open UI。通过该升级,他们还希望开始实施Selenium。我们目前面临的问题,或者在实施后将面临的问题是,每次构建时,Siebel中HTML元素的ID /名称都会发生变化。因为我们讨论的是很多视图和applet,所以每次手动更改代码都不是一个好的解决方案。
这个问题的解决方案是什么?提供的一个解决方案是关联表,我们跟踪ID的变化。
在这种情况下,Xpath也不是一个好的选择,因为视图和applet的结构很复杂。
答案 0 :(得分:0)
I would suggest that you look into CSS Selectors. They are faster and less brittle than XPath. For ID/names that are dynamic, typically there is at least some portion of the ID that is static.
For instance,
<a id="somestatictext_12345">...
where "12345" is some dynamically generated number. In this case you can use a CSS selector like
driver.findElement(By.cssSelector("[id^='somestatictext']"));
Examples
"[id^='somestatictext']" - ID begins with "somestatictext"
"[id$='somestatictext']" - ID ends with "somestatictext"
"[id*='somestatictext']" - ID contains "somestatictext"
For more info, take a look at this CSS Selector reference.