我长期坚持这个问题而且我不知道该怎么做。
我正在尝试自动化地图应用程序,该应用程序上有位置和位置。当您单击特定位置时,它将打开有关位置或位置的详细信息。地图有一个画布,HTML代码如下所示:
<canvas width="642" height="741" oncontextmenu="return false;" type="layer" class="tmc" style="user-select: none; left: 0px; top: 0px; position: absolute; width: 642px; height: 741px;"></canvas>
这个画布基本上是一个地图,我想在具有一些数据的特定位置上执行鼠标点击事件。
我的非点击事件看起来像这样
browser.sleep(10000).then(function () {
var canvas = element(by.xpath("xpath"));
canvas.click();
});
但有些我无法达到预期效果。请帮忙
答案 0 :(得分:1)
我可以理解尝试自动化基于canvas
的应用程序的痛苦,并且HTML中没有任何内容,并且完整的Map直接从浏览器中的canvas元素呈现。甚至谷歌地图也表现相同。 HTML中只有canvas
元素,与页面交互的唯一方法是使用Protractor的actions API
你可以尝试这样的事情。这对我来说对gMaps很有用。
describe('Describe something', function() {
it('check check', function () {
browser.driver.get('https://www.google.co.in/maps/place/Hyderabad,+Telangana/data=!4m2!3m1!1s0x3bcb99daeaebd2c7:0xae93b78392bafbc2?sa=X&ved=0ahUKEwiMosHAy9rSAhVCt48KHYP5DBMQ8gEIgQEwDQ')
browser.driver.actions().
// Move mouse to a particular position
mouseMove({x: 636, y: 292}).
// Click or hoverOver on the location
doubleClick().
perform();
});
});