gpt4 book ai didi

Protractor - getText 作为 sendKeys 和其他操作的输入

转载 作者:行者123 更新时间:2023-12-01 13:49:59 24 4
gpt4 key购买 nike

我正在编写 Protractor 测试,我需要使用 getText() 读取 id='mylabel' 的 span/div。然后我需要使用 sendKeys() 将值传递给输入 (id='myinput')。

所以,我这样做:

var value;
element(by.id('mylabel')).getText().then(function(txt){
value = txt;
element(by.id('myinput')).sendKeys(value);
// do "other protractor tasks" with 'value'.
})

但是,有没有一种方法可以避免嵌套,方法是让 Protractor 仅在设置值变量后才执行 sendKeys 和后续操作?

上面是一个简单的案例,但我很快发现代码因为等待 promise 被解析而陷入多重嵌套。此外,我观察到如果“其他 Protractor 任务”由于某个地方的错误而抛出错误(它只是挂起并超时), Protractor 不会提供堆栈跟踪。

我正在使用 Protractor 2.1.0,并且正在使用 Angular JS 页面。

我特别想知道在 Protractor 的嵌套任务中出现静默错误是否是一个已知问题,是否有解决方法?

最佳答案

Protractor 在不需要 then 函数的情况下至少处理一个级别的 promise 。这样您就可以期待同步流。

如果您正在寻找基于事件的操作,例如观察要更新的值,那么您可以这样设置:

function waitForTextToUpdate(elm, defaultText, timeout) {
if (typeof(timeout) === 'undefined') {
timeout = 10000;
}
return browser.driver.wait(function() {
return elm.getText().then(function(value) {
return !(value.indexOf(defaultText) > -1);
});
}, timeout, "Expectation error (waitForTextToUpdate): Timed out waiting for element state to change.");
}

关于Protractor - getText 作为 sendKeys 和其他操作的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32631803/

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