groovy - Groovy 闭包不处理异常
问题描述
在 Katalon Studio 中,我正在尝试编写一个带有闭包的测试用例,以帮助处理支持的选择器的限制。我的代码是这样的:
def findDataRows = {
WebElement container
try {
container = driver.findElement(By.cssSelector('.tab-pane.active'))
}
catch (NoSuchElementException ex) {
container = driver.findElement(By.cssSelector('.dataTables_wrapper'))
}
String dataRowsSelector = '.dataTables_scrollBody tbody tr:not(.dataTables_empty):not(.group)'
List<WebElement> tableRows = container.findElements(By.cssSelector(dataRowsSelector)),
dataRows = new LinkedList<WebElement>()
for (WebElement tr : tableRows) {
if (tr.findElements(By.cssSelector('.dataTables_empty')).empty) {
dataRows.add(tr)
}
}
dataRows
}
出于某种原因,尽管块存在,但编译器并没有catch
处理NoSuchElementException
被抛出的块,并设置container
为我的测试用例中保证存在的元素,而是简单地抱怨块。try
如何让 Groovy 处理闭包中的异常?
注意:它应该return dataRows
解决方案
推荐阅读
- python - 为什么我的深度学习模型预测的值非常相似但错误
- c - arm-thumb-elf-gcc: fork: Resource temporarily unavailable make: *** [main.o] error in Visual HAM SDK
- java - RecyclerView换色删除Bug
- c# - 如何在 C# 中创建两个接口之间的交集?
- java - 如何以编程方式从本地存储安装 .apk 文件?
- c# - 验证码刷新图像技术
- php - 标记中使用的两个连接字符串末尾不需要的“/”
- javascript - 如何解决 w3 学校标签模式中的溢出问题?
- python - Django:如何比较两个不同的数据表的数据字段并获得完全正确的数据?
- pyspark - Spark 在进入下一个循环迭代之前是否会清除内存?