Javascript 如何在应用程序中对非角度页面使用量角器

Javascript 如何在应用程序中对非角度页面使用量角器,javascript,protractor,Javascript,Protractor,我不熟悉量角器。我已经编写了一个小脚本,用于通过量角器测试应用程序,其间我遇到了一个无角度的页面。所以通过谷歌搜索,我找到了browser.ignoreSynchronization=true;当书写非棱角页面时。但它不起作用。请帮忙。脚本在单击之前工作正常,但在添加浏览器后抛出错误。ignoreSynchronization=true;对于非角度页面 下面是我的config.js和spec.js conf.js exports.config = { seleniumAddres

我不熟悉量角器。我已经编写了一个小脚本,用于通过量角器测试应用程序,其间我遇到了一个无角度的页面。所以通过谷歌搜索,我找到了browser.ignoreSynchronization=true;当书写非棱角页面时。但它不起作用。请帮忙。脚本在单击之前工作正常,但在添加浏览器后抛出错误。ignoreSynchronization=true;对于非角度页面

下面是我的config.js和spec.js

conf.js

    exports.config = {
    seleniumAddress: 'http://localhost:4444/wd/hub',
    specs: ['spec.js']
};
describe('Open the browser', function ()
    {

    it('should open the browser', function () {

        browser
        .manage()
        .window()
        .maximize();

        browser.get('url');
        var userlogin = element(by.xpath('//*[@id="main-navbar"]/ul[2]/li[2]/a')).click();
        var mobnumber = element(by.xpath('//*[@id="mnoz"]')).sendKeys('id');
        var pw = element(by.xpath('//*[@id="mpinz"]')).sendKeys('pw');
        var loginbtnclick = element(by.xpath('//*[@id="mobileLogin"]/form/div[4]/button')).click();
        browser.sleep(5000);

        var dialogbox = element(by.xpath('/html/body/div[11]/md-dialog/md-content/div[8]/button')).click();
        var allservicestab = element(by.xpath('//*[@id="homeTabs"]/md-tabs-wrapper/md-tabs-canvas/md-pagination-wrapper/md-tab-item[4]')).click();
        var deptclick = element(by.xpath('//*[@id="tab-content-17"]/div/md-content/div/div/md-card[2]/div[2]')).click();

        browser.ignoreSynchronization = true;

        browser.driver.findElement(By.className('department-click')).click();

    })

});
spec.js

    exports.config = {
    seleniumAddress: 'http://localhost:4444/wd/hub',
    specs: ['spec.js']
};
describe('Open the browser', function ()
    {

    it('should open the browser', function () {

        browser
        .manage()
        .window()
        .maximize();

        browser.get('url');
        var userlogin = element(by.xpath('//*[@id="main-navbar"]/ul[2]/li[2]/a')).click();
        var mobnumber = element(by.xpath('//*[@id="mnoz"]')).sendKeys('id');
        var pw = element(by.xpath('//*[@id="mpinz"]')).sendKeys('pw');
        var loginbtnclick = element(by.xpath('//*[@id="mobileLogin"]/form/div[4]/button')).click();
        browser.sleep(5000);

        var dialogbox = element(by.xpath('/html/body/div[11]/md-dialog/md-content/div[8]/button')).click();
        var allservicestab = element(by.xpath('//*[@id="homeTabs"]/md-tabs-wrapper/md-tabs-canvas/md-pagination-wrapper/md-tab-item[4]')).click();
        var deptclick = element(by.xpath('//*[@id="tab-content-17"]/div/md-content/div/div/md-card[2]/div[2]')).click();

        browser.ignoreSynchronization = true;

        browser.driver.findElement(By.className('department-click')).click();

    })

});
下面是我需要进一步单击的代码

<div class="department-click" onclick="GLOBAL_SERVICE_ID=405;changeLocation('#/aicte');_routeFrom='home'">
<!-- <div class="department-click" onclick="changeLocation('#/aaaa')"> -->


提前感谢。

当角度同步被禁用时(因为它必须用于测试非角度应用程序),您需要确保自己正在正确等待元素。你可以借助量角器来做这件事

以另一种方式写为

const requiredEle = element(by.css('.department-click');
const EC = protractor.ExpectedConditions;

browser.wait(EC.visibilityOf(requiredEle), 10*1000, 'ele with class department-click did not appear within 10 seconds');

ignoreSynchronization
已弃用。使用
browser.waitForAngularEnabled(false)
并将其放在
browser.get()之前,而不是之后。这是否回答了您的问题?看看这个答案,谢谢都柏林的建议。谢谢都柏林的建议。我试图在添加wait for angular为false后运行,但它对我不起作用。引发如下错误-失败:没有此类元素:无法定位元素:{“方法”:“css选择器”,“选择器”:。部门单击“}构建信息:版本:'3.141.59',修订:'e82be7d358',时间:'2018-11-14T08:25:53'系统信息:主机:'DESKTOP-EF4ELPJ',ip:'10.22.119.193',os.name:'Windows 10',os.arch:'amd64',os.version:'10.0',java.version:'1.8.0ç'Driver info:Driver.version:unknown我在那里添加了ignoreSynchronization,因为我的非角度页面仅从那里开始。我添加的代码是为了在var deptclick之后单击。我添加代码只是为了检查我是否以正确的方式编写了代码。请帮忙。