python selenium canvas_selenium webdriver 实现Canvas画布自动化测试

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脚本的方

你可能感兴趣的:(python,selenium,canvas)