https://blog.csdn.net/xiaoguanyusb/article/details/80324210
由借鉴意义, 转过来
canvas 是一个画布,定位元素时只能定位到画布上,如下乳所示,网页上有一张类似于下图的eChart报表图片。selenium的基本定位方式只能定位到该画布上,画布上的子元素通过selenium的基础定位方式是定位不到的, 此时就需要使用selenium的js注入的方式,通过插入js脚本的方式获取索要操作的元素坐标。 再使用action对应的方法去执行对应的操作。
1: 创建注入js方法。用于获取canvas画布上的具体元素消息
window.T={
getCanvasId:function (id){
var cache = *****.echartCache;
var instances = [];
for (var key in cache){
//alert(key);
if (key.indexOf(id) != -1){
instances.push(key);
}
}
return instances
}
}
2: 通过如下js.executeScript方法将js脚本注入页面。
String jsCode=getText("e:/jsb.js");
Object a=js.executeScript(jsCode);
3: 通过再次注入js脚本的方