📌  相关文章
📜  如何在量角器 Node.js 中获取元素的 x 和 y 坐标?

📅  最后修改于: 2021-11-07 08:24:18             🧑  作者: Mango

Protractor是为 AngularJS 和 Angular 应用程序开发的端到端测试框架。它基本上针对与真实用户进行交互的应用程序运行测试,该应用程序在真实浏览器中运行。在下面的示例中,我们将获取元素的 x 和 y 坐标并检查它是否符合预期。

先决条件:安装和设置Protractor

方法:

  • 我们将创建一个基本的测试程序,我们将在其中检查元素的 x 和 y 坐标是否符合预期。
  • 所有Protractor测试都有一个包含配置的文件,该文件将是启动测试的初始文件。
  • 让我们创建一个名为conf.js 的文件。

示例:文件名:conf.js

Javascript
exports.config = {
  
    // Capabilities values for
    // webdriver instance
    capabilities: {
        'browserName': 'chrome'
    },
  
    // Framework value
    framework: 'jasmine',
  
    // The Spec patterns are relative to the 
    // current working directory when
    // protractor is called.
    specs: ['test.js'],
  
    // Options which are passed to our
    // framework ie. Jasmine.
    jasmineNodeOpts: {
        defaultTimeoutInterval: 30000
    },
  
    // File URL
    baseUrl: 'file://' + __dirname + '/',
  
    onPrepare: function () {
        browser.resetUrl = 'file://';
    }
};


HTML



    
    
        Inner text     


Javascript
describe('Protractor Demo App', function () {
    it('should have a title', function () {
        // Disabling waiting for angular
        browser.waitForAngularEnabled(false)
  
        // Get our html file for testing
        browser.get('test.html');
  
        // Test if the element have required coordinates
        let foo = element(by.id('foo'));
        expect(foo.getLocation()).toEqual(
        jasmine.objectContaining({
            x: 15,
            y: 20
        }));
    });
});


现在让我们创建名为test.html的 HTML 文件,该文件将包含要测试的元素。

文件名:test.html

HTML




    
    
        Inner text     

现在让我们创建我们的测试文件test.js 。在这个文件中,我们将访问一个 HTML 文件,然后获取 x 和 y 坐标,并检查它是否与 HTML 文件中设置的一样。 Browser 是一个由Protractor创建的全局变量。

Jasmine 框架提供了describe()函数和it()函数,其中describe是测试的描述,而是测试的步骤。

文件名:test.js

Javascript

describe('Protractor Demo App', function () {
    it('should have a title', function () {
        // Disabling waiting for angular
        browser.waitForAngularEnabled(false)
  
        // Get our html file for testing
        browser.get('test.html');
  
        // Test if the element have required coordinates
        let foo = element(by.id('foo'));
        expect(foo.getLocation()).toEqual(
        jasmine.objectContaining({
            x: 15,
            y: 20
        }));
    });
});

使用以下命令运行 conf.js 文件:

protractor conf.js

输出: