Где «by» объявлено в исходном коде транспортира?

#javascript #protractor

#javascript #транспортир

Вопрос:

В следующем фрагменте кода:

 element(by.id('myDiv'));
 

В element этом источнике объявлено в строке 740. Но я не мог определить, где by объявлено. Где объявлена эта переменная? Если это нигде не объявлено, как эта переменная разрешается?

Чтение источника, by может быть, «локатор» и этот источник связаны с ним. Но я не мог видеть из этого источника никакого объявления by переменной.

Комментарии:

1. Я думаю, здесь github.com/angular/protractor/blob/master/lib/protractor.js#L36 . И где-то кто-то это делает var by = require(...).By .

2. 1. И где может быть этот источник?

3. Вы должны посмотреть в коде, где element(by.id('myDiv')); это.

4. Это всего лишь пример кода, который я продолжаю рассматривать в качестве примера, и они используют его так, как если бы он уже был где-то объявлен.

5. Думаю, я нашел это. Это здесь: github.com/borisyankov/DefinitelyTyped/blob/master /…

Ответ №1:

by определяется webdriver.js и расширен в транспортире с помощью специальных угловых локаторов , таких как by.model .

Локаторы в webdriver.js определены в этом файле.

Здесь определено расширение в транспортире.