单击容器中的每个按钮

Click Each Button In Container

我想使用 Katalon 来点击容器中的每个按钮。

网页的设置大致如下所示,其中每个按钮的 class 结构相同,文本可能不同,它们的 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 不允许单击远程 Web 元素。我希望我可以只使用单个测试对象,因为它们大部分是相同的。

单击容器中每个按钮的最佳方式是什么?有可能吗?

我正在放弃使用 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()