我遇到findByXpath
的问题时忽略了先前的选择(使用findXxxxxXxxx
命令完成的选择)。
我的Page对象看起来像这样
class DeleteModalUiComponent {
constructor(private remote: Remote) { }
getComponentContainer() {
return this.remote.findDisplayedByCssSelector('.delete-modal');
}
clickModalBotton(text: string) {
return this.getComponentContainer()
.findByXpath(`//button//*[contains(text(),'${text}')]`)
.then(elem => elem.click())
.waitForDeletedByCssSelector('.delete-modal');
}
}
我想根据容器来建立 Xpath 的基础,但是findByXpath
忽略了 getComponentContainer()的选择以及从根目录中进行选择。
API在先行者中指出以下内容:
获取此元素内与给定XPath匹配的第一个元素 选择器。
但是在 Xpath 中使用//
前缀会忽略this element
。
答案 0 :(得分:1)
Xpath中的//
前缀将忽略当前上下文元素,因为//
明确表示“从文档根目录搜索”。要在当前上下文元素中搜索,请使用.//
。