期望xpath元素具有特定文本

时间:2017-11-08 13:43:53

标签: xpath protractor

按下保存按钮后,会弹出一个框,说明它是成功还是失败。无论结果如何,该框都具有相同的xpath。

expect(element(by.xpath('path example')));

在元素的HTML中,它说

<div class="panc lm-he" style="....."><span style="..."> Saved!</span></div>

编辑 - 哎呀它早。

我想知道如果文本“已保存!”,我怎么能期望回来呢?有没有。所以,如果“保存!”在该元素中存在然后它是真的否则它是错误的。

3 个答案:

答案 0 :(得分:0)

尝试显示整个元素的输出:

element(by.xpath('path example')).then(function(element){
    console.log(element);
});

答案 1 :(得分:0)

不确定我理解你想要什么,但是这样你会检查div是否有'已保存!'文字显示

expect(element(by.xpath('.//div[text(), "Saved!"]')).isDisplayed).toBe(true);

答案 2 :(得分:0)

正如@Gunderson所说,你使用的定位器并不重要,语法也是一样的。当我想确认元素中的文本时,我通常会这样做:

myElement.getText().then(function (text) {
        expect(text).toContain(message)
    });

通过查看失败,如果元素根本没有显示,或者它是否可见但文本没有显示,或者一切正常并且测试通过,你可以通过这种方式判断。所以在你的情况下它只是

element(by.xpath('path example')).getText().then(function (text) {
        expect(text).toContain('Saved!')
    });