Нажмите каждую кнопку в контейнере

Я хотел бы использовать Katalon для нажатия каждой кнопки в контейнере.

Веб-страницы настроены примерно так, как показано ниже, где структура классов для каждой кнопки одинакова, текст может различаться, а их URL-адреса различны.

<div class="container">
    <div class="button">
        <a href="page1.html" class="description" role="button">
            Page 1
        </a>
    </div>
    <div class="button">
        <a href="page2.html" class="description" role="button">
            Page 2
        </a>
    </div>
    <div class="button">
        <a href="page3.html" class="description" role="button">
            Page 3
        </a>
    </div>
</div>

Я хочу иметь возможность нажимать каждую из кнопок, чтобы перейти по их ссылкам, щелкнув одну, вернувшись на предыдущую страницу и нажав следующую.

Я также хотел бы, чтобы он был расширяемым, поскольку на странице не всегда может быть одинаковое количество кнопок.

В Katalon Studio у меня есть следующий скрипт, который подсчитывает количество кнопок на странице.

WebUI.openBrowser('')
WebUI.navigateToUrl('http://button-container.com')
def buttonObject = findTestObject('Object Repository/Page_Buttons - div_button')
def buttonElements = WebUI.findWebElements(buttonObject, 5)
def numberOfButtons = buttonElements.size()

Затем я хотел перебрать и щелкнуть каждый из buttonElements, но похоже, что Katalon не позволяет щелкать удаленные веб-элементы. Я надеялся, что смогу обойтись без использования только одного тестового объекта, поскольку они в основном одинаковы.

Как лучше всего нажимать каждую кнопку в контейнере? Это вообще возможно?


person Spencer Stream    schedule 09.01.2020    source источник
comment
Не могли бы вы поделиться определением findTestObject('Object Repository/Page_Buttons - div_button') из репозитория объектов?   -  person Mate Mrše    schedule 15.01.2020


Ответы (1)


Я отказываюсь от использования Katalon. Katalon на самом деле не создан для того, что я пытаюсь достичь.

Для всех, кому интересно, я успешно использую Python и Selenium для управления строкой XPATH для перебора элементов.

Это похоже

for i in range(1, number_of_buttons + 1):
    button_xpath = '/html/body/div[1]/div[{}]/a'.format(i)
    button = driver.find_element_by_xpath(button_xpath)
    action.move_to_element(button)
    button.click()
person Spencer Stream    schedule 10.01.2020
comment
Katalon использует Groovy и Selenium под капотом, так что это всего лишь вопрос предпочтений. То же самое можно сделать и с Katalon. - person Mate Mrše; 15.01.2020