Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在量角器中使用异步等待?_Javascript_Asynchronous_Protractor - Fatal编程技术网

Javascript 如何在量角器中使用异步等待?

Javascript 如何在量角器中使用异步等待?,javascript,asynchronous,protractor,Javascript,Asynchronous,Protractor,我已经更新了7.6以上的node.js版本,我正在使用ES6。我还附上了错误消息。我正在使用jasmine和javascript编写测试。如果没有aysnc,我将等待其正常工作。我无法找出下面出现错误的原因。任何帮助都将被高度重视。 My code is :- SELENIUM_PROMISE_MANAGER: false, describe("testing login functionalties", function() { it("entering the tex

我已经更新了7.6以上的node.js版本,我正在使用ES6。我还附上了错误消息。我正在使用jasmine和javascript编写测试。如果没有aysnc,我将等待其正常工作。我无法找出下面出现错误的原因。任何帮助都将被高度重视。

  My code is :-
  SELENIUM_PROMISE_MANAGER: false,
  describe("testing login functionalties", function() {

     it("entering the text", async function () {

    browser.get("https://weather.com/en-IN");
    //console.log('ddd')
    browser.ignoreSynchronization= true;
    element(by.xpath("//button[@class='user-login']")).click()
    //browser.ignoreSynchronization= true;
    console.log('ddd')
    element(by.xpath("//input[@type='email']")).sendKeys("offsite.mail1@gmail.com");
    element(by.xpath("//input[@type='password']")).sendKeys("xxxxx");
    var a= element(by.xpath("//button[@class='btn btn-disabled sign-button login-button']"));
    await a.getText();
    console.log(a);
    a.click();


});
}))

我得到的错误是:-
/usr/local/cillar/node/7.9.0/bin/node/usr/local/lib/node_modules/dragrator/builded/cli.js/Users/amrit/webstorprojects/E2E/conf.js
(节点:13230)弃用警告:os.tmpDir()已弃用。请改用os.tmpdir()。
(节点:13230)弃用警告:`DEBUG_FD`已弃用。如果要使用其他日志函数,请重写'debug.log'(https://git.io/vMUyr)
[16:03:41]I/local-正在启动selenium独立服务器。。。
[16:03:41]I/launcher-运行WebDriver的1个实例
[16:03:42]I/local-Selenium独立服务器已在启动http://10.101.23.28:60360/wd/hub
起动
F
失败:
1) 测试登录功能时遇到声明异常
信息:
错误:异步函数(){
browser.get(“https://weather.com/en-IN");
//console.log('ddd')
browser.ignoreSynchronization=true;
元素(按.xpath(“//按钮[@class='user-login']”)。单击()
//browser.ignoreSynchronization=true;
console.log('ddd')
元素(by.xpath(“//input[@type='email']”)。mail1@gmail.com");
元素(by.xpath(“//input[@type='password']”);
var a=element(by.xpath(“//button[@class='btn btn disabled sign button login button']”);
等待a.getText();
控制台日志(a);
a、 单击();
}这不是一个函数
堆栈:
错误:异步函数(){
browser.get(“https://weather.com/en-IN");
//console.log('ddd')
browser.ignoreSynchronization=true;
元素(按.xpath(“//按钮[@class='user-login']”)。单击()
//browser.ignoreSynchronization=true;
console.log('ddd')
元素(by.xpath(“//input[@type='email']”)。mail1@gmail.com");
元素(by.xpath(“//input[@type='password']”);
var a=element(by.xpath(“//button[@class='btn btn disabled sign button login button']”);
等待a.getText();
控制台日志(a);
a、 单击();
}这不是一个函数
在validateFunction(/usr/local/lib/node_modules/dragrator/node_modules/jasminewd2/index.js:30:11)
at/usr/local/lib/node_modules/dragrator/node_modules/jasminewd2/index.js:116:16
在套房。(/Users/amrit/websprojects/E2E/descripe.js:8:5)
反对。(/Users/amrit/websprojects/E2E/descripe.js:6:1)
在模块处编译(模块js:571:32)
在Object.Module.\u extensions..js(Module.js:580:10)
在Module.load(Module.js:488:32)
1个规格,1个故障
以0.011秒完成
[16:03:44]I/local-关闭selenium独立服务器。
[16:03:44]I/launcher-WebDriver的0个实例仍在运行
[16:03:44]I/launcher-chrome#01测试失败1次
[16:03:44]I/launcher-总体:1个规格失败
[16:03:44]E/launcher-进程已退出,错误代码为1
进程已完成,退出代码为1

如我在评论中所述,删除
async

browser.ignoreSynchronization
设置为true将对非角度页面执行此操作

还要更新代码,它可能会在getText上失败。 另外,我不喜欢xpath,我建议改用by.css

describe('testing login functionalties', function() {
    it("entering the text", function () {   
        browser.get("https://weather.com/en-IN");

        browser.ignoreSynchronization= true;
            element(by.css('[@class="user-login"]')).click()

            console.log('ddd')
            element(by.css('[type="email"]')).sendKeys('offsite.mail1@gmail.com');
            element(by.css('[type="password"]')).sendKeys('xxxxx');
            var a = element(by.css('.btn.btn-disabled.sign-button.login-button'));
            a.getText().then(function(tmpText) {
            console.log(tmpText);
        });
            a.click();
    });
});

正如我在评论中提到的,删除单词
async

browser.ignoreSynchronization
设置为true将对非角度页面执行此操作

还要更新代码,它可能会在getText上失败。 另外,我不喜欢xpath,我建议改用by.css

describe('testing login functionalties', function() {
    it("entering the text", function () {   
        browser.get("https://weather.com/en-IN");

        browser.ignoreSynchronization= true;
            element(by.css('[@class="user-login"]')).click()

            console.log('ddd')
            element(by.css('[type="email"]')).sendKeys('offsite.mail1@gmail.com');
            element(by.css('[type="password"]')).sendKeys('xxxxx');
            var a = element(by.css('.btn.btn-disabled.sign-button.login-button'));
            a.getText().then(function(tmpText) {
            console.log(tmpText);
        });
            a.click();
    });
});

只是运行了一个快速测试,并且能够重现您的错误。通过一点调试,问题似乎是Jasmine(至少是量角器5.1.1附带的那个)。通过安装并在配置中选择它作为
framework
,我可以让
asyncwait
工作

刚刚运行了一个快速测试,能够重现您的错误。通过一点调试,问题似乎是Jasmine(至少是量角器5.1.1附带的那个)。通过安装并在配置中选择它作为
framework
,我可以让
asyncwait
工作

据我所知,有一个问题已在5.1.2版中修复。因此,您应该更新量角器,它会工作。

据我所知,在5.1.2版中修复了一个问题。因此,您应该更新量角器,量角器将正常工作。

删除
量角器中的“async”一词。
然后如何对非角度页面
浏览器使用async wait???。ignoreSynchronization=true将完成此操作。如果需要等待某个元素。您需要使用
browser.sleep(1000)
async wait与
browser.ingoreSynchronization=true
无关@Amritpassing,我知道是用于TypeScript的,但是您是否正确设置了所有配置,如设置配置、编译代码等等?删除
中的“async”一词。然后如何对非角度页面使用async Wait??
浏览器。ignoreSynchronization=true将完成此操作。如果需要等待某个元素。您需要使用
browser.sleep(1000)
async wait与
browser.ingoreSynchronization=true
无关@Amritpalingh,我知道是TypeScript的,但是你把所有的配置都设置正确了吗?比如,设置配置,编译代码等等