自动化wicket框架(Java)基础web应用程序



我正在尝试为我的wicket(框架)基础web应用程序开发自动化测试脚本。

我使用Selenium 2.44 jar(插件)和Firefox 23版本,还使用Firefox插件,Firebug检查web元素和FirePath获取web元素的xpath。但我面临的问题是我的web应用程序中的HTML id是动态的,这意味着每次它都在变化,所以因为这些路径也在变化,而寻找元素时,我得到了"NoSuchElementException"。

您可以在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>

如果您提供您的页面的html源代码片段将是很好的。现在我只能建议,您可以尝试使用一些动态Xpath函数,如contains()、following()等。举个例子:By.xpath("//div[包含(text(),'一些文本')和包含(@class,'整个类名或类名的某些部分,如果是动态的')]/following::*")或By.xpath("//div[包含(text(),'一些文本')和包含(@class,'整个类名或类名的某些部分,如果是动态的')]/following::div")

相关内容

最新更新