javascript - 尝试使用 Protractor 选择消息时索引带外

标签 javascript testing xpath protractor

我正在尝试使用此 HTML 代码选择一条警告消息“未分配的金额..” HTML code for warning message

我尝试使用这行代码来选择它

  var warning=element.all(by.xpath('.//span[.="Unassigned Amount = 20.00"]')).filter(function (elm) {
    return elm.isDisplayed().then(function (isDisplayed) {
        return isDisplayed;
    });
});

但是我从 Protractor 得到了这个错误: Error Transcript written below

Message:
    Failed: Index out of bound. Trying to access element at index: 0, but there are only 0 elements that match locator By(xpath, .//span[.="Unassigned Amount = 20.00"]

最佳答案

我怀疑 XPath 表达式内部的严格相等性检查是问题所在,因为文本周围有额外的空格。试试 contains() :

.//span[contains(., "Unassigned Amount = 20.00")]

你也可以用by.cssContainingText locator来解决。 :

element.all(by.cssContainingText("span[data-for=APIInvoiceAmount]", "Unassigned Amount = 20.00"))

关于javascript - 尝试使用 Protractor 选择消息时索引带外,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40051011/

相关文章:

javascript - Knock out js - 根据选择控件中选择的选项绑定(bind)值

JavaScript/Jest : How to show logs from test case only when test fails?

javascript - ExtJS 3.2.0,隐藏tabpanel的标题

javascript - Protractor ng-重复

ios - 在 Objective-C 中解析 HTML

c# - XPathNodeIterator 从迭代数据访问子节点

javascript - "Inject"现有应用程序中的 JavaScript 用于操作 UI (qwebirc)

c - C中的CPU数量限制

testing - 我如何测试(QA)我的Amazon应用程序MWS

php - DOMXPath var_dump : "(object value omitted)"