katalon-studio - 单击容器中的每个按钮
问题描述
我想使用 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。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()
推荐阅读
- meteor - Mobx 模型中的 Meteor.userId()
- html - 从模板中删除轮廓并将其扩展为 100%
- javascript - 在按钮单击时禁用模式输入
- amazon-web-services - AWS Serverless 图像处理程序是否存储衍生品?
- python - Kivy:我可以自由改变按钮内文本的位置吗?并在按钮中添加另一个文本?
- python - MRO,超级如何在 python 中工作
- ios - 无法将数据填充到表视图中
- python - Python:沿边界从图像中裁剪区域
- java - 带有 Gradle 的 SpringBoot 应用程序因 ./gradlew bootRun 而失败
- r - R:从主题 ID 创建新的聚类变量