Как получить координаты x и y элемента в транспортире Node.js?

Опубликовано: 27 Июля, 2021

Protractor - это среда для сквозного тестирования, разработанная для приложений AngularJS и Angular. Он в основном запускает тесты для приложения, которое взаимодействует с ним, как настоящий пользователь, в реальном браузере. В следующем примере мы собираемся получить координаты x и y элемента и проверить, соответствуют ли они ожидаемым или нет.

Предварительные условия: установка и настройка транспортира

Подход:

  • Мы собираемся создать базовую тестовую программу, в которой мы собираемся проверить, соответствуют ли координаты 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-файл с именем test.html, который будет содержать проверяемый элемент.

Имя файла: test.html

HTML




<!DOCTYPE html>
< html lang = "en" >
< body >
<!-- The element to be tested -->
< div id = "foo" style="position: absolute;
top:20px; left: 15px">
Inner text
</ div >
</ body >
</ html >

Теперь создадим наш тестовый файл test.js. В этом файле мы собираемся получить доступ к файлу HTML, а затем получить координаты x и y и проверим, установлены ли они в файле HTML или нет. Браузер - это глобал, созданный Protractor.

Jasmine структура обеспечивает функцию описания () и функции его () , где описать это описание теста , а это шаги для испытания.

Имя файла: 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, используя следующую команду:

 транспортир conf.js

Выход: