Selenium IDE: невозможно нажать кнопку Vaadin - PullRequest
0 голосов
/ 23 апреля 2020

Я пытаюсь автоматизировать навигацию к внешнему веб-сайту. Для этого мне нужно нажать на кнопку (чтобы показать следующую неделю в календаре fullcalendar ). Fullcalendar addon для Vaadin выглядит следующим образом .

Кнопка определена в HTML как ( Электрон 80 инструмент разработчика):

  <div id="content">
    <vaadin-vertical-layout class="layoutCalendar" theme="padding spacing" style="width: 80%;">
        <div class="buttonContainer">
            <vaadin-button class="custom-button" theme="icon" tabindex="0" role="button">
                <iron-icon icon="vaadin:angle-double-left"></iron-icon>
            </vaadin-button>
            <vaadin-button class="custom-button" tabindex="0" role="button">Today</vaadin-button>
            <vaadin-button class="custom-button" theme="icon" tabindex="0" role="button">
                <iron-icon icon="vaadin:angle-double-right"></iron-icon>
            </vaadin-button>
            <vaadin-button class="custom-button" theme="icon" tabindex="0" role="button">
                <iron-icon icon="vaadin:calendar"></iron-icon>
                <vaadin-date-picker tabindex="0" style="visibility: hidden; width: 0px; position: fixed; height: 0px;"></vaadin-date-picker>
            </vaadin-button>
        </div>
        <full-calendar class="calendar" style="background: rgb(255, 255, 255);"></full-calendar>
    </vaadin-vertical-layout>
</div>

Определен ее xpath (из Firefox 68 устройств разработки) as:

//*[@id="button"]

Поэтому я добавил команду click в Selenium IDE со следующим текстом в поле назначения:

xpath=//*[@id="button"]

Но, конечно же, как и все кнопки (а именно предыдущая или сегодня один) использовать тот же идентификатор, который не работает (Failed: 09:44:37 Implicit Wait timed out after 30000ms.

. Поэтому я попытался с xpath:

<vaadin-button class="custom-button" theme="icon" tabindex="0" role="button"><iron-icon icon="vaadin:angle-double-right"></iron-icon></vaadin-button>

xpath, определенным как:

/div[1]/vaadin-vertical-layout/div/vaadin-button[3]

Итак, в Selenium IDE я ввел в поле назначения:

xpath=//div/vaadin-vertical-layout/div/vaadin-button[3]

с тем же результатом.

Более того, использование Find target in page не выделяет кнопку и использование Select target in page возвращает css=calendar-view и заканчивается таким же образом (не нажимает на кнопку).

Следовательно, как я могу нажать на эту кнопку и почему Selenium IDE не показывает ошибку, если не может найти элемент? Кроме того, я должен переключить Selenium (не IDE) или достаточно Selenium IDE для моих нужд?

Обратите внимание: так как это внешний сайт, которым я не владею, я не могу сказать, какая версия vaadin работает на сайте.

Редактировать: пробуя @ ответ Пита ниже

Я выполнил упражнение на Vaadin FullCalendar Addon demo и заставил его работать с xpath=//vaadin-button[4] или xpath=//vaadin-button//span[contains(text(),"Next")]. Я заметил, что Selenium IDE предлагал эти xpath, когда я входил.

Когда я делал то же самое на моем целевом веб-сайте, Selenium IDE предлагал только xpath=//calendar-view. Более того, хотя инструменты разработчика сообщили, что следующая кнопка (без текста, только значок chevron-right) на самом деле была 4-й vaadin-button, Selenium IDE не смогла выделить (или найти) xpath=//vaadin-button[4]. Это выглядит странно для меня.

Что может помешать Selenium IDE найти кнопку?

Любая помощь с благодарностью: -)

1 Ответ

1 голос
/ 23 апреля 2020

С https://stefan.app.fi/fullcalendar-demo/, я написал эти xpaths:

Предыдущая неделя:

XPath = "//vaadin-button//span[contains(text(),"Previous")]"

Следующая неделя:

XPath = "//vaadin-button//span[contains(text(),"Next")]"

Сегодня :

XPath = "//vaadin-button//span[contains(text(),"Today")]"
...