【问题标题】:ExtJS Test Automation using Selenium Webdriver使用 Selenium Webdriver 的 ExtJS 测试自动化
【发布时间】:2015-10-30 03:27:48
【问题描述】:

我对使用 Selenium webdriver 自动化 ExtJS 应用程序的测试用例有疑问。

两年前,我被要求使用 HP UFT 自动化相同的 ExtJS 应用程序。我通过为 ExtJS 组件开发自定义 UFT 插件来做到这一点。现在我被要求继续自动化,但使用 selenium webdriver 而不是 UFT。今天,我尝试了一些控件,我发现 Selenium 无法使用 xpath 识别 ExtJS 树节点、ExtJS 选项卡等一些控件。

当我在其中键入定位器值时,我看到 firepath 将我带到正确的控件。但是,如果我在 Java 代码中使用相同的定位器值,我会得到 Selenium 抛出的 nosuchelement 异常。

这是我在列表中选择特定节点的代码。

<div>
    <span class="x-tree-node-text">Circuit</span>
</div>

By.xpath("//span[contains(text(),'Circuit')])[1]")   // there are two circuits like

我使用 Selenium 实现自动化的工作会很艰难吗?我只学过Java。我应该学习新技术来自动化这个应用程序吗?

请告诉我。

【问题讨论】:

    标签: javascript java selenium extjs extjs4


    【解决方案1】:

    在使用 Selenium 实现自动化时,ExtJS 是一种动物。我已经用 CSS 和 jquery 选择器做了几个 ExtJS 应用程序。 Jasmine 是推荐的方法,但我没有调查它,因为我没有发现需要。如果您包含 sizzle 库,它将允许您使用非常有用的 jquery 选择器。要选择您使用 jquery 提供的元素,它将是:

    $("span.x-tree-node-text:contains('Circuit')")
    

    我正在使用手机,无法提供链接,但请考虑为您的框架添加嘶嘶声。它将大大提高您自动化 ExtJS 的成功率。

    您提供的选择器不起作用,因为您正在为没有 id 的 div/span 指定 id。

    我还遇到了 ExtJS 的时间问题,Selenium 没有等待 dom 完成加载,然后它就会爆炸。解决方案是添加对 ExpectedConditions.visibilityofElementLocated 的等待。

    【讨论】:

    • 对不起,当我发布问题时,我感到困倦。在上面的代码中不是 id 而是我的 xpath sn-p By.xpath(//span[contains(text(),'Circuit')])[1] .
    猜你喜欢
    • 1970-01-01
    • 2016-04-17
    • 2020-02-29
    • 2012-03-01
    • 2013-01-15
    • 2012-06-21
    • 2021-05-15
    • 1970-01-01
    • 2021-01-10
    相关资源
    最近更新 更多