问题描述
在下面的图片中,我需要获取所有tspan元素的文本,该文本位于突出显示的g标签下(使用Katalon Studio进行脚本编写)
<g class="highcharts-axis-labels highcharts-xaxis-labels " data-z-index="7">
<text x="212.75" style="color:#666666;cursor:default;font-size:11px;fill:#666666;" text-anchor="middle" transform="translate(0,0)" y="183" opacity="1">
<tspan>Aug 13</tspan></text>
<text x="266.25" style="color:#666666;cursor:default;font-size:11px;fill:#666666;" text-anchor="middle" transform="translate(0,0)" y="183" opacity="1">
<tspan>Aug 14</tspan></text>
<text x="319.75" style="color:#666666;cursor:default;font-size:11px;fill:#666666;" text-anchor="middle" transform="translate(0,0)" y="183" opacity="1">
<tspan>Aug 15</tspan></text>
<text x="373.25" style="color:#666666;cursor:default;font-size:11px;fill:#666666;" text-anchor="middle" transform="translate(0,0)" y="183" opacity="1">
<tspan>Aug 16</tspan></text>
<text x="426.75" style="color:#666666;cursor:default;font-size:11px;fill:#666666;" text-anchor="middle" transform="translate(0,0)" y="183" opacity="1">
<tspan>Aug 17</tspan></text>
<text x="480.25" style="color:#666666;cursor:default;font-size:11px;fill:#666666;" text-anchor="middle" transform="translate(0,0)" y="183" opacity="1">
<tspan>Aug 18</tspan></text>
<text x="533.75" style="color:#666666;cursor:default;font-size:11px;fill:#666666;" text-anchor="middle" transform="translate(0,0)" y="183" opacity="1">
<tspan>Aug 19</tspan></text>
<text x="587.25" style="color:#666666;cursor:default;font-size:11px;fill:#666666;" text-anchor="middle" transform="translate(0,0)" y="183" opacity="1">
<tspan>Aug 20</tspan></text>
<text x="640.75" style="color:#666666;cursor:default;font-size:11px;fill:#666666;" text-anchor="middle" transform="translate(0,0)" y="183" opacity="1">
<tspan>Aug 21</tspan></text>
<text x="694.25" style="color:#666666;cursor:default;font-size:11px;fill:#666666;" text-anchor="middle" transform="translate(0,0)" y="183" opacity="1">
<tspan>Aug 22</tspan></text>
<text x="747.75" style="color:#666666;cursor:default;font-size:11px;fill:#666666;" text-anchor="middle" transform="translate(0,0)" y="183" opacity="1">
<tspan>Aug 23</tspan></text>
<text x="801.25" style="color:#666666;cursor:default;font-size:11px;fill:#666666;" text-anchor="middle" transform="translate(0,0)" y="183" opacity="1">
<tspan>Aug 24</tspan></text>
<text x="854.75" style="color:#666666;cursor:default;font-size:11px;fill:#666666;" text-anchor="middle" transform="translate(0,0)" y="183" opacity="1">
<tspan>Aug 25</tspan></text>
<text x="908.25" style="color:#666666;cursor:default;font-size:11px;fill:#666666;" text-anchor="middle" transform="translate(0,0)" y="183" opacity="1"><tspan>Aug 26</tspan></text>
</g>
那就是我需要在列表中获取8月12日,8月13日,8月14日等日期并获取其文本。(文本标记中的x值是动态的,并且每次会话都会变化) 我正在使用Katalon Studio编写脚本。
请指导我。 预先感谢。
编辑:(无效) 公共类VerifyChartData {
private static void compareChartDataWithTable(){
TestObject selector_datapoints = new TestObject().addProperty(
'xpath',com.kms.katalon.core.testobject.ConditionType.EQUALS,'//div[@id="container"]/div/*[local-name()="svg"]/*[local-name()="g" and contains(@class,"highcharts-axis-labels") and contains(@class,"highcharts-xaxis-labels")]',true)
List<WebElement> datapoints = WebUI.findWebElements(selector_datapoints,30)
KeywordUtil.logInfo(datapoints.get(0).toString())
}
}
解决方法
使用以下代码解决了该问题-
私有静态void compareChartDataWithTable(){
TestObject selector_datapoints = new TestObject().addProperty(
'xpath',com.kms.katalon.core.testobject.ConditionType.EQUALS,'//div[@id="container"]/div/*[local-name()="svg"]/*[local-name()="g" and contains(@class,"highcharts-axis-labels") and contains(@class,"highcharts-xaxis-labels")]',true)
List<WebElement> datapoints = WebUI.findWebElements(selector_datapoints,30)
for(int i = 0; i < datapoints.size; i++){
KeywordUtil.logInfo(datapoints[i].getText())
}
} 结果: 2020-08-27 12:25:41.585调试测试用例。检查SP关键字仪表板-5:******。VerifyChartData.compareChartDataWithTable() 2020-08-27 12:25:46.641 INFO com.kms.katalon.core.util.KeywordUtil-8月13日 8月14 8月15 8月16 8月17 8月18 8月19 8月20 8月21 8月22 8月23 8月24 8月25 8月26 2020-08-27 12:25:46.643信息k.k.c.m.CustomKeywordDelegatingMetaClass-******。VerifyChartData.compareChartDataWithTable已通过