xpath - 如何在 Protractor 出错的情况下返回元素名称?

标签 xpath typescript jasmine protractor

我正在尝试处理各种错误情况,同时在 typescript 中使用 Protractor 查找元素。 这是我的做法:

textBoxA = this.findElementBy(locator.XPATH,"//input[@formname='name']");

此处 //input[@formname='name'] 是该元素的 xpath。

如果 xpath 给出错误,那么 Protractor 会给我错误,例如 no element found using xpath... 并且可能还有规范失败的文件等,许多 npm 记者也报告了这些错误。

但是,我不想像上面的例子那样想要失败的元素的名称,我希望 textBoxA 出现在日志中的某个地方,以便在我有很多的情况下很容易调试规范。

我怎样才能做到这一点?

最佳答案

您可以为此使用以下 2 种方法:

  1. 更好的方法是在您调用任何元素的任何操作时实现 function(err){}。在这里你可以像这样处理错误:

ElementNotFound, NoSuchWindowsError or ElementStaleError etc...

  1. 另一种方法是在创建元素时实现包装器。例如: 例如:

    var nameElem = findElement(by.id('name'), 'Name Element');

findElement函数定义:

findElement: function(elemCss, elemName){
    element(elemCss).isPresent().then(function(value){
        if (present) {
            /* element exists */
        } else {
            /* element doesn't exist, use elemName and record anywhere in your custom log */
        }
    })
}

关于xpath - 如何在 Protractor 出错的情况下返回元素名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41532113/

相关文章:

perl - 仅选择第一个元素 - 条件使用 XML::Twig

python - 如果显示元素,则查找元素的选择器无效

javascript - SystemJS+Typescript环境下Jasmine异步启动

JavaScript 对象数组未正确导入

javascript - 用 Jasmine 测试backbone.js应用程序-如何测试 View 上的模型绑定(bind)?

typescript - 使用 Typescript 创建自定义 Jasmine 匹配器

java - 如何获取没有html标签selenium的文本

python - 如何转义 xpath 中的正斜杠?

javascript - WooCommerce API 中的 401 发布方法未经授权

javascript - Jasmine Node 测试子进程回调