2016-09-29 56 views
1

我正在为我的检票(框架工作)基础web应用程序开发自动化测试脚本。自动化检票框架(Java)基础web应用程序

我使用Selenium 2.44 jar(插件)和Firefox 23版本,也使用Firefox插件,Firebug检查Web元素和FirePath以获取Web元素的xpath。但是我面临的问题是我的Web应用程序中的HTML ID是动态的,这意味着每当它发生变化时,因为其中的xpaths也在发生变化,并且在查找元素时,我得到“NoSuchElementException”。

+1

使用CSS选择器。如果您需要选择器的帮助,请添加带有ID值的视图示例。 – lauda

回答

3

您在DebugSettings中设置了setComponentPathAttributeName()。这会导致wicket将它的路径转换为html。只有更改组件层次结构时,路径才会更改。

public void init() { 
    super.init(); 

    getDebugSettings().setComponentPathAttributeName("wicketpath"); 
} 

这会使你的HTML看起来像:

<form wicket:id="form" id="form1" wicketpath="form" method="post" action="./?0-3.IFormSubmitListener-form"> 
<div wicket:id="childField" wicketpath="form_childField"></div> 
</form> 
0

这将是很好的,如果你提供你的网页的HTML源代码的片段。 现在我可以建议,你可以尝试一些动态Xpath函数,如contains(),following()等。 只是举例: By.xpath(“// div [contains(text(),'some文本'),并且包含(@ class,'整个类名或类名的一部分,如果其动态')]/following:*“) 或 By.xpath(”// div [contains文本(),'一些文本'),并包含(@ class,'整个类名或部分类名不会改变,如果它的动态')]/following:div“)

像这样。

+0

雅@priya谢谢你同样的事情为我工作...作为一个新手,我无法构建XPath查询..现在其工作。 ...谢谢:) –

+0

@SnehaNigam很高兴知道。 如果有帮助,您也可以投票回答。 :) –