Я пытаюсь выбрать уникальный элемент, но проблема в том, что есть 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 '); }
помогите мне решить эту проблему.
если есть два одинаковых элемента, вы можете использовать
element.all(by.model('model')).get(0);
В зависимости от индекса вы можете использовать get (0), get (1).
first()
и last()
доступны на ElementArrayFinder
. В вашей ошибке говорится, что вы пытаетесь использовать first()
на ElementFinder
.
this.selectDropOption = $('.md-virtual-repeat-container:nth-of-type(1) .md-autocomplete-parent-scope
get
. protractortest.org/#/api?view=ElementArrayFinder