首页 > 解决方案 > 在量角器 POM 实现中出现错误

问题描述

我创建了 3 个不同的文件 1)config.js 2)Homepage.js 3)TestScript.js,执行 config.js 时出现错误

请帮我纠正它。

测试环境版本如下:- Protractor 版本 5.4.3 节点 12.14.1 npm 6.13.4

错误:-

PS E:\Protractor\ProtractorWithPOM\conf> protractor config.js [10:03:18] I/launcher - 运行 1 个 WebDriver 实例 [10:03:18] I/hosted - 在http://使用 selenium 服务器localhost:4444/wd/hub [10:03:25] E/launcher -url第 2 行第 1 列缺少字段构建信息:版本:'3.141.59',修订:'e82be7d358',时间:'2018-11-14T08 :25:53' 系统信息:主机:'DESKTOP-OTBQBN0',ip:'192.168.229.2',os.name:'Windows 10',os.arch:'amd64',os.version:'10.0',java .version:'1.8.0_231' 驱动程序信息:driver.version:未知 [10:03:25] E/launcher - WebDriverError:缺少字段urlWebDriver.navigate().to(undefined) at thenableWebDriverProxy.schedule (C:\Users\user\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\webdriver.js:807:17) 在 Navigation .to (C:\Users\user\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\webdriver.js:1133:25) 在 thenableWebDriverProxy.get (C:\Users\user\AppData\ Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\webdriver.js:988:28) 在新主页 (E:\Protractor\ProtractorWithPOM\pages\Homepage.js:8:24) 在新主页 (E: \Protractor\ProtractorWithPOM\pages\Homepage.js:7:17) 在对象。(E:\Protractor\ProtractorWithPOM\pages\Homepage.js:26:15) 在 Module._compile (internal/modules/cjs/loader.js:955:30) 在 Object.Module._extensions..js (internal/modules /cjs/loader.js:991:

配置.js

var HtmlReporter = require('protractor-beautiful-reporter');

exports.config = {

  seleniumAddress: 'http://localhost:4444/wd/hub',
  capabilities: { 
   browserName: 'firefox', 
   browserVersion: '72.0.2'
   },
  specs: ['E:\\Protractor\\ProtractorWithPOM\\tests\\TestScript.js'],

 onPrepare: function() {

      jasmine.getEnv().addReporter(new HtmlReporter({
         baseDirectory: 'Reports/screenshots'
      }).getJasmine2Reporter());
   }

};

主页.js

let Homepage= function(){

    var accept_Cookies=element(by.id('cookieConfirmationButton'));
    var cityname=element(by.id("googlePlace"));
    var area=element(by.id('myInput'));

    this.getURL=new function(url){
        browser.driver.get(url);

    };

    this.acceptCookie=new function(){
        accept_Cookies.click();
    };

    this.entercityName=new function(cityname){
        cityname.sendKeys(cityname);

    };
    this.enterareaname=new function(areaname){
        area.sendKeys(areaname);

    }

};
module.export=new Homepage();

测试脚本.js

let Homepage= require('../pages/Homepage');

describe("This is my pratractor test", function(){


    it("TC0:This is Generali Global Health Provider Project", function(){

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

        Homepage.getURL('https://pffrontendprod.azureedge.net/search');

        expect(browser.driver.getTitle()).toEqual('Generali Global Health Provider Search');

    });

    it("TC1: Verify Search", function(){

        Homepage.acceptCookie();
        Homepage.entercityName("Navi Mumbai, Maharashtra, India");
        Homepage.enterareaname("Fortis Hiranandani Hospital");

    });
});

标签: javascriptnode.jsangularjsselenium-webdriverprotractor

解决方案


参考这个

在此处输入图像描述

测试脚本.js

let hmpage = require('../pages/Homepage').Homepage;

describe("This is my pratractor test", () => {


    it("TC0:This is Generali Global Health Provider Project", () => {
        hmpage.getURL('https://pffrontendprod.azureedge.net/search');
        expect(browser.driver.getTitle()).toEqual('Generali Global Health Provider Search');
    });

    it("TC1: Verify Search", () => {
        hmpage.acceptCookie();
        hmpage.entercityName("Navi Mumbai, Maharashtra, India");
        hmpage.enterareaname("Fortis Hiranandani Hospital");
    });
});

主页.js

let locators = {
    accept_Cookies: browser.driver.element(by.id('cookieConfirmationButton')),
    cityname: browser.driver.element(by.id("googlePlace")),
    area: browser.driver.element(by.id('myInput'))
};

let methods = {
    getURL: (url) => {
        browser.driver.get(url);
    },
    acceptCookie: () => {
        locators.accept_Cookies.click();
    },
    entercityName: (cityname) => {
        locators.cityname.sendKeys(cityname);
    },
    enterareaname: (areaname) => {
        locators.area.sendKeys(areaname);
    }
}

exports.Homepage = { locators, methods };

推荐阅读