我正在尝试编写一个量角器测试,它使用XPath来单击<a>标记,这是我的角度应用程序的一部分。
以下是我目前的情况:
it('should click the Calculators menu button', () => {
var listItem2 = element(by.xpath('/html/body/app-root/app-shell/app-menu/div[2]/ul/li[3]'));
listItem2.click().then(() => {
browser.sleep(10000);
});
});当我运行测试时,我会收到以下错误消息:
失败:没有使用locator: By找到任何元素(xpath,/html/body/app-root/app-shell/app-menu/nav/div2/ul/li3) )
当我检查<a>标记&单击Copy full XPath时,上面的XPath就是我得到的值。
我有一种感觉,这个问题围绕着frames。例如,当我输入登录凭据&单击Login时,我会被带到另一个URL。
有谁能告诉我为什么这个XPath没有被识别。
下面是控制台中的HTML:

发布于 2020-07-23 00:19:59
尝试在单击之前添加一个期望条件。类似于:
var elm = element(by.xpath('//ul[@class="nav navbar-nav pull-right navigation"]/li[3]/a'));
var EC = protractor.ExpectedConditions;
browser.wait(EC.elementToBeClickable(elm), 5000);
elm.click();发布于 2020-07-22 20:45:20
您错过了一个nav标记:
/html/body/app-root/app-shell/app-menu/nav/div[2]/ul/li[3]但最好这样做:
//app-root/app-shell/app-menu/nav/div/ul/li[3]/ahttps://stackoverflow.com/questions/63042801
复制相似问题