gpt4 book ai didi

debugging - 如何在调试器中获取 ElementFinder 的 html,而不是 promise ?

转载 作者:搜寻专家 更新时间:2023-10-30 20:40:40 26 4
gpt4 key购买 nike

我有一个元素:this.page.taskAssignment,类型为 ElementFinder。在我的 UI 测试中,我单击此元素,但没有任何反应。我怀疑我点击了错误的元素,这就是为什么我想检查点击了什么,为了做到这一点,我需要在调试器中查看 html。

我在 WebStorm 调试器中写道:this.page.taskAssignment.element.getTagName().then(e => {console.log(e)}) 但结果仍然是一个 promise 并且我找不到任何 html。

问题:如何获取该元素的 html,而不是 Promise,而是 string

最佳答案

您可以使用 await 关键字来获取值。

let formField = await element(by.formControlName(myField));
let formTag = await formField.getTagName();
let innerHtml = await browser.executeScript("return arguments[0].innerHTML;", formField);

(以前有一个 getOuterHtml() 方法,但根据 protractor docs ,selenium 将其删除。)

如果你得到一个错误,你只能使用 await 是一个保留字,它需要在 async 函数中,例如在您的页面对象上。

class myPageObject{
async fillForm(myField) {
let formField = await element(by.formControlName(myField));
let formTag = await formField.getTagName();
let innerHtml = await browser.executeScript("return arguments[0].innerHTML;", formField);

// .... rest of code
}
}

参见 https://www.protractortest.org/#/page-objects有关页面对象的更多信息。

关于debugging - 如何在调试器中获取 ElementFinder 的 html,而不是 promise ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45570198/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com