【问题标题】:Automating wicket framework (Java) base web application自动化 wicket 框架 (Java) 基础 Web 应用程序
【发布时间】:2017-02-08 04:26:45
【问题描述】:

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

我正在使用 Selenium 2.44 jars(插件)和 Firefox 23 版本,还使用 ​​Firefox 插件、Firebug 来检查 Web 元素和 FirePath 来获取 Web 元素的 xpath。但我面临的问题是我的 Web 应用程序中的 HTML ID 是动态的,这意味着每次它都在变化,因此 xpaths 也在变化,在查找元素时我得到“NoSuchElementException”。

【问题讨论】:

  • 使用 css 选择器。如果您需要选择器方面的任何帮助,请添加带有 id 值的视图示例。

标签: selenium automation wicket


【解决方案1】:

您在 DebugSettings 中设置了 setComponentPathAttributeName()。这将导致检票口将其路径呈现到 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>

【讨论】:

    【解决方案2】:

    如果您提供页面的html源代码的sn-p会很好。 现在我只能建议,您可以尝试一些动态 Xpath 函数,如 contains()、following() 等。 举个例子: By.xpath("//div[contains(text(),'some text') and contains(@class,'整个类名或类名的某些部分,如果它是动态的,则不会改变')]/following:: *") 要么 By.xpath("//div[contains(text(),'some text') and contains(@class,'整个类名或类名的某些部分,如果它是动态的,则不会改变')]/following:: div")

    像这样。

    【讨论】:

    • Ya @priya 谢谢你同样的事情对我有用......作为一个新手,我无法构建 xpath 查询......现在它可以工作了。 ...谢谢你:)
    • @SnehaNigam 很高兴知道这一点。如果它有帮助,您也可以对答案进行投票。 :)
    猜你喜欢
    • 1970-01-01
    • 2018-07-04
    • 1970-01-01
    • 2012-06-02
    • 1970-01-01
    • 1970-01-01
    • 2020-01-29
    • 1970-01-01
    • 2015-11-19
    相关资源
    最近更新 更多