Angular 7, Транспортир не идентифицирует веб-элементы angular и не взаимодействует с ним - PullRequest
0 голосов
/ 14 апреля 2020

Я новичок в транспортире и пытаюсь автоматизировать приложение Angular 7.

У меня есть уникальные идентификаторы и классы для идентификации веб-элементов. Я написал базовый c тест транспортира, чтобы запустить мое приложение и взаимодействовать с веб-элементами на странице.

Домашняя страница приложения - angular и содержит angular элементов, поэтому waitFor Angular вне вопроса. (Полагаю)

Транспортир не может идентифицировать веб-элементы и передает спецификации. Я запустил его в консоли отладки, элементы не были найдены с помощью элемента (by. css ('classname')). Click ();

Я также использую asyn c, ожидаю и отключаю менеджер по селеновым обещаниям.

Пожалуйста, помогите, я застрял и прочитал все сообщения, но ни одно из решений не применимо к моему делу.

Ответы [ 2 ]

0 голосов
/ 15 апреля 2020

Вы пробовали это?

1.Как из информации, которую вы разместили, у вас есть уникальные идентификаторы и классы для идентификации веб-элементов, и вы запустили его в консоли отладки, при этом элементы не были найдены с помощью element (by. css ('classname')). click ();

Правильно ли вы идентифицируете веб-элемент на веб-странице? Чтобы проверить это, попробуйте приведенный ниже фрагмент кода. Это только для подтверждения, что вы идентифицируете правильный веб-элемент.

highlightElement = function (locator) {
        console.log('highlight--');

        console.log('locator---:' + locator);
        const ele = browser.driver.findElement(locator);

        return browser.driver.executeScript('arguments[0].setAttribute(\'style\', arguments[1]);', ele, 'color: Red; border: 2px solid red;')
        .then(function (resp) {
            browser.sleep(2000);
            return ele;
        }, function (err) {
            console.log('error is :' + err);
        });
    };

const ele = element(by.css(‘classname’)); // element identification 

highlightElement(ele); //  verify right identification 
browser.sleep(5000); // just to see the highlighted element on web page
Ожидать транспортир до полной загрузки страницы. попробуйте ниже фрагмент
await browser.wait(async () =>
        await browser.driver.executeScript('return document.readyState;') === 'loading', 2000)
        .then(() => true, () => true);
await browser.wait(async () =>
        await browser.driver.executeScript('return document.readyState;') === 'complete', 5000)
0 голосов
/ 14 апреля 2020

вам может потребоваться подождать, пока элемент не появится. Пожалуйста, попробуйте вот так.

var EC = protractor.ExpectedConditions;
browser.wait(EC.presenceOf(element(by.css(‘classname’))), 5000, 'Element taking too long to appear in the DOM');
element(by.css(‘classname’)).click();

Пожалуйста, дайте мне знать, если он не работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...