我想验证使用量角器在页面上是否存在某些文字。
附件是我要验证的页面标记,我要验证的文本是:
Vi har mottatt din melding. Vi ser på denne så snart som mulig,
normalt innen neste arbeidsdag.
使用xpath不起作用:
var xpath = '//*[@id="app"]/div/section[2]/article/section[2]/div[1]/div[2]/span[2]';
var txt = element(by.xpath(xpath)).getText();
expect(txt).toEqual(
'Vi har mottatt din melding. Vi ser på denne så snart som mulig,' +
' normalt innen neste arbeidsdag.');
任何提示?
答案 0 :(得分:0)
尝试
const EC = protractor.ExpectedConditions;
expect(EC.presenceOf(element(by.xpath('//span[text()='Vi har mottatt din melding. Vi ser på denne så snart som mulig, normalt innen neste arbeidsdag.']))));
//
告诉xpath你正在做一个相对路径,所以在英语中该命令应该期望存在包含你正在寻找的文本的跨度。
答案 1 :(得分:0)
定义异步你的函数(或测试)里面有getText(),然后 尝试使用async getText(),它返回一个promise:
var txt = await element(by.xpath(xpath)).getText();
例如,我的测试功能如下:
export async function getSelectOptionAutocompleteByText(select: ElementFinder, text: string): promise.Promise<ElementFinder> {
let ret: any;
const res = await select.all(by.cssContainingText('li', text));
for (const el of res) {
const ris = await el.getText(); // -----this is what i mean----
if (ris === text) {
ret = el;
return ret;
}
}
return ret;
}