单击容器中的每个按钮

问题描述 投票:0回答:1

我想使用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不允许单击“远程Web元素”。我希望我可以只使用单个测试对象,因为它们基本相同。

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

katalon-studio katalon-recorder
1个回答
0
投票

我放弃使用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()
© www.soinside.com 2019 - 2024. All rights reserved.