Katalon Studio无法识别SVG标签内嵌套图片以创建拖拽对象
问题:Katalon Studio能否识别SVG标签内嵌套的图片?
我尝试为拖拽功能创建对象,但无法成功创建SVG标签内嵌套图片对应的对象。请问Katalon Studio能否识别SVG标签?我可以找到Web应用中其他图片,但无法识别嵌套在SVG标签内的图片。
相关HTML代码如下:
<svg class="enyo-svg image" id="application_mainView_FileViewerPanel_control16_projectView1_Frame" preserveAspectRatio="none" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="width: 532.7px; height: 355.13px;"> <image id="application_mainView_FileViewerPanel_control16_projectView1_Image" xlink:href="assets/images/projects/centroCivico.svg" x="0" y="0" width="100%" height="100%" preserveAspectRatio="xMidYMid meet" style=""></image> </svg>
解决方案
Katalon Studio是支持识别SVG元素的,但因为SVG属于独立的XML命名空间,默认的对象录制/识别逻辑有时候会漏掉里面的<image>标签,我给你几个实用的解决办法:
用带命名空间处理的XPath定位
直接用//image定位会失效,因为SVG的<image>属于http://www.w3.org/2000/svg命名空间。你可以用local-name()来匹配标签名,再结合属性精准定位,比如这个XPath://svg[@class='enyo-svg image']//*[local-name()='image' and @xlink:href='assets/images/projects/centroCivico.svg']这个表达式先找到目标SVG容器,再定位里面的
<image>元素,同时通过xlink:href属性确保是你要找的那张图。手动创建测试对象
别依赖自动录制,直接在Katalon的对象仓库里右键新建一个Web元素对象,然后在定位器选项卡选择XPath,把上面的表达式粘贴进去。保存后用Spy Web工具验证一下,看能不能选中目标元素。处理动态加载的情况
如果你的SVG是异步加载的,记得在识别前加个等待步骤(比如WebUI.waitForElementPresent()),确保SVG和里面的图片完全渲染出来,避免因元素未加载导致识别失败。
这些方法应该能帮你成功创建SVG内图片的测试对象,进而完成拖拽功能的测试。
内容的提问来源于stack exchange,提问作者Aidan Irish
相关产品推荐
相关产品推荐

