【问题标题】:Protractor fails to identify locators in different divs in the the same web page量角器无法识别同一网页中不同 div 中的定位器
【发布时间】:2016-11-03 06:13:20
【问题描述】:

我正在为以下网页编写量角器测试脚本。

我试图通过他们自己的定位器到达每个领域。这是我的测试脚本。

describe('Protractor Demo App', function() {
    it('should have a title', function() {
        browser.get('http://');

    //Maximize browser window
    var width = 1900;
    var height = 1500;
    browser.driver.manage().window().setSize(width, height);    
    browser.driver.sleep(2000);

    //Enter username and password
    element(by.model('login.user_name')).sendKeys('ooo');
    element(by.model('login.password')).sendKeys('1236');
    browser.driver.sleep(2000);

    //Click login buton
    element(by.css('.btn')).click();    
    browser.driver.sleep(2000);

    //Click on image
    element(by.css('div.col-lg-2:nth-child(2) > div:nth-child(1) > a:nth-child(1) > i:nth-child(1)')).click();
    browser.driver.sleep(5000);

    // Click Employee button
    element(by.css('body > nav > div.collapse.navbar-collapse > ul:nth-child(1) > li:nth-child(1) > a')).click();
    browser.driver.sleep(2000);

    // Click Employee Add
    element(by.css('body > nav > div.collapse.navbar-collapse > ul:nth-child(1) > li.open > ul > li:nth-child(1) > a')).click();
    browser.driver.sleep(2000);

    // Employee Details
     element.all(by.model('user_master.salutation_id')).each(function (eachElement, index)
       {
           eachElement.click();
           browser.driver.sleep(500);
           element(by.css('body > div.container-fluid > div > div > div > div > div > form > div:nth-child(1) > div:nth-child(1) > div.panel-body > div:nth-child(1) > select > option:nth-child(3)')).click();
           browser.driver.sleep(500);
       });  // Select Salutation

    element(by.model('user_master.first_name')).sendKeys('Manuli'); browser.driver.sleep(200);// Enter First Name
    element(by.model('user_master.second_name')).sendKeys('Piyalka'); browser.driver.sleep(200);// Enter Second Name
    element(by.model('user_master.full_name')).sendKeys('M.P. Manawadu'); browser.driver.sleep(200);// Enter Name with Initials
    element(by.model('user_master.dob')).sendKeys('1991-01-26'); browser.driver.sleep(200);// Enter Date of Birth
    element(by.model('user_master.nic')).sendKeys('915260489V'); browser.driver.sleep(200);// Enter NIC
    browser.driver.sleep(2000);

    // Contact Details
    element(by.model('user_master.phone_mobile')).sendKeys('0767037512'); browser.driver.sleep(200);// Enter Phone-mobile
    element(by.model('user_master.phone_land')).sendKeys('0112277582'); browser.driver.sleep(200);// Enter phone-land
    element(by.model('user_master.user_address')).sendKeys('Kurusagoda,Gonapinuwala'); browser.driver.sleep(200);// Enter Address
    element(by.model('user_master.email_address')).sendKeys('mpiaylka@et.lk'); browser.driver.sleep(200);// Enter Email
    element(by.model('user_master.emer_name')).sendKeys('Manuli'); browser.driver.sleep(200);// Enter Name
    element(by.model('user_master.emer_phone')).sendKeys('0767037512'); browser.driver.sleep(200);// Enter Phone Number
    browser.driver.sleep(2000);

        });
});

但是,当我运行这个应用程序时,只有员工详细信息部分正在运行。出现以下错误。

消息: 错误:超时 - 在指定的超时内未调用异步回调 jasmine.DEFAULT_TIMEOUT_INTERVAL。

但是,当我评论员工详细信息部分并运行时,联系人详细信息部分会运行。我该怎么办?

问候。

【问题讨论】:

  • 1.是角度应用程序吗?如果是,则不需要“browser.driver”语法。你应该像那样只使用'browser.sleep()'。 2.增加conf.js文件中的DEFAULT_TIMEOUT_INTERVAL值。

标签: angularjs jasmine protractor


【解决方案1】:

尝试使用 xpath。 by.xpath('//button[contains(., "Select None")]') :)

【讨论】:

    猜你喜欢
    • 2022-12-01
    • 1970-01-01
    • 2016-05-06
    • 1970-01-01
    • 2019-11-18
    • 1970-01-01
    • 2015-11-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多