Как мне использовать Protractor, чтобы пройтись по набору элементов и проверить, кликабельны ли они?

1

Мне нужно проверить, отображается ли и отображается список кнопок на странице. Сначала я собираю все элементы с элементами. All

allEmployeeOptions = element.all(by.css('[role=option]'));

Затем я попытался использовать функцию.each для их прокрутки и проверить, отображаются ли они (я также добавлю isEnabled).

   testAllOptionsClickable(){
    //this.actions.click();
    browser.sleep(3000);
    this.allEmployeeOptions.each(function(elm){
    expect(elm.isDisplayed).toBe(true);
    });

Кажется, что это не работает, я получаю "Ожидаемая функция, чтобы быть правдой", повторяемой 10 раз для каждого элемента.

Мое лучшее предположение заключается в том, что у него возникают проблемы с решением обещания цикла, но это мой первый раз, когда я пишу такой цикл в Protractor. Это также возможно. Каждый из них не подходит, и цикл for будет лучше.

Любая помощь приветствуется.

Теги:
selenium
selenium-webdriver
promise
protractor

2 ответа

1

.each - это правильный подход, я бы не использовал цикл for для перебора элементов. Ваша проблема - это просто отсутствующая скобка, isDisplayed() - это функция, поэтому вам просто нужно изменить ваше утверждение, чтобы expect(elm.isDisplayed()).toBe(true);

Кроме того, для чего я должен добавить другое утверждение. Отображение не означает, что элемент обязательно доступен для кликабельности, вам следует рассмотреть возможность добавления проверки для isEnabled().

0

Вы делаете все правильно. Но у protractor есть метод to ckeck, если элемент кликабель.

example:


it('....xxxx.', function() {
    elems=$$('.items.item li'); // use your css locator
    var EC = protractor.ExpectedConditions;
    elems.each(async function(elem){
    browser.wait(EC.elementToBeClickable(elem), 5000);
    // perform other action 
    let elmtxt= await elem.getText();
    console.log("text: "+elmtxt);
    //expect(elem.isDisplayed()).toBe(true); /toBeTruthy();/
});

Ещё вопросы

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