Как выбрать уникальный элемент в двух одинаковых моделях?

1

Я пытаюсь выбрать уникальный элемент, но проблема в том, что есть 2 модели без уникального режима, а id - динамический. его спецификация html test

it('Rental Car should work ', function() {

let rentalCar = new Hotel();
rentalCar.operator.sendKeys('Eurocar');
rentalCar.carClass.selectValue('M');
rentalCar.pickupTime.sendKeys('12');
rentalCar.DropOfTime.sendKeys('13');
//rentalCar.cancelable.check();
rentalCar.clientAmount.sendKeys('120');
rentalCar.supplierAmount.sendKeys('12');
rentalCar.pickupLocation.sendKeys('berlin');
rentalCar.selectpickOption.click();
browser.sleep(2000);
rentalCar.dropLocation.sendKeys('Han');
browser.sleep(2000);
rentalCar.selectDropOption.click();
browser.sleep(2000);
rentalCar.save();

})

я попытался добавить first() и last() в конец объекта страницы, но его ошибка получения "TypeError: $ (...). first не является функцией"

class Hotel {

конструктор() {

this.operator = element(by.model('$ctrl.item.operator'));
this.carClass = new MdSelect('$ctrl.item.class');
this.pickupTime = element(by.model('$ctrl.item.pickup_time'));
this.DropOfTime = element(by.model('$ctrl.item.return_time'));
//this.cancelable = new MdCheckBox('$ctrl.item.isFlex');
this.clientAmount = element(by.model('$ctrl.item.traveler_item_data[0].line_items[0].gross_amount'));
this.supplierAmount =element(by.model('$ctrl.lineItem.supplier_gross_amount'));
this.pickupLocation = $('md-autocomplete md-autocomplete-wrap md-input-container [aria-label="Pickup location"]');
this.selectpickOption = $('md-virtual-repeat-container md-autocomplete-parent-scope');
this.dropLocation = $('md-autocomplete md-autocomplete-wrap md-input-container [aria-label="Drop-off location"]');
this.selectDropOption = $$('.md-virtual-repeat-container .md-autocomplete-parent-scope '); }

помогите мне решить эту проблему.

Теги:
protractor
e2e-testing
automated-tests

2 ответа

0

если есть два одинаковых элемента, вы можете использовать

element.all(by.model('model')).get(0);

В зависимости от индекса вы можете использовать get (0), get (1).

  • 0
    я пробовал, что тоже ошибка та же; (TypeError: $ (...). get не является функцией
  • 0
    Вы должны разрешить обещание перед вызовом get . protractortest.org/#/api?view=ElementArrayFinder
0

first() и last() доступны на ElementArrayFinder. В вашей ошибке говорится, что вы пытаетесь использовать first() на ElementFinder.

  • 0
    да, я пытаюсь его использовать, но хотя я не использую first () и last (), затем rentalCar.pickupLocation.sendKeys ('berlin'); rentalCar.selectpickOption.click (); оно прошло, но rentalCar.dropLocation.sendKeys ('Han'); browser.sleep (2000); rentalCar.selectDropOption.click (); это не удалось, и причина в том же элементе, я не знаю, как дифференцировать оба
  • 0
    Попробуйте это: this.selectDropOption = $('.md-virtual-repeat-container:nth-of-type(1) .md-autocomplete-parent-scope
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню