Groovy列表和地图
发布时间:2020-12-14 16:20:48 所属栏目:大数据 来源:网络整理
导读:我正在为硒测试编写辅助方法.其中之一是: private static ListDataRow parseTable(WebElement table) { ListWebElement tableHeaders = table.findElements(By.tagName("th")) ListDataRow dataRow = table.findElements(By.xpath(".//tbody/tr")).collect
我正在为硒测试编写辅助方法.其中之一是:
private static List<DataRow> parseTable(WebElement table) { List<WebElement> tableHeaders = table.findElements(By.tagName("th")) List<DataRow> dataRow = table.findElements(By.xpath(".//tbody/tr")).collect { Map<String,String> columns = [:] it.findElements(By.tagName("td")).eachWithIndex { item,i -> columns[tableHeaders.get(i).text] = item.text } new DataRow(it,columns) } return dataRow } 我不喜欢这部分: it.findElements(By.tagName("td")).eachWithIndex { item,i -> columns[tableHeaders.get(i).text] = item.text } 有没有更好的方法从两个列表制作地图? 解决方法
你应该能够做到:
def columns = [tableHeaders,it.findElements(By.tagName("td"))].transpose().collectEntries() 通过解释: 鉴于: def a = [ 'a','b','c' ] def b = [ 1,2,3 ] 然后 def c = [ a,b ].transpose() assert c == [ [ 'a',1 ],[ 'b',2 ],[ 'c',3 ] ] 和: def d = c.collectEntries() assert d instanceof Map assert d == [ a:1,b:2,c:3 ] (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |