2017-04-07 100 views
0

嵌入在网页中的地图。我想点击地图上的一个别针。我可以将JS注入页面,或者使用Selenium可用的任何API。如何在JavaScript中嵌入的Google地图上点击图钉?

问题是我无法在页面上的嵌入式地图中找到该引脚。

可能的解决方案:
我已经考虑过让它领先于点击监听器,但是如果以前有人这样做,并且可以给我一个提示,我将不胜感激。

回答

0

这是一个Nightwatch.js测试用例,我需要在地图(位置)点击一个图钉。由于我可以控制测试用例并且只有一个位置,因此我可以假设视图集中在引脚上。所以:

browser.execute(function() { 
function clickPin(){ 
var elem = document.getElementsByClassName('map-canvas')[0]; 
var rect = elem.getBoundingClientRect(); 
var centerY = (rect.bottom - rect.top); 
var centerX = (rect.right - rect.left); 
var divX = document.createElement("div"); 
divX.style.visibility = 'hidden'; 
divX.id = 'offsetX'; 
divX.innerHTML = centerX.toString(); 
var divY = document.createElement("div"); 
divY.style.visibility = 'hidden'; 
divY.innerHTML = centerY.toString(); 
divY.id = 'offsetY'; 
document.head.appendChild(divX); 
document.head.appendChild(divY); 
} 
clickPin(); 
}, [], function(result){}); 
browser.pause(3000); 
browser.waitForElementPresent(`//*[@id="offsetX"]`, 3000); 
var relX = browser.getValue(`//*[@id="offsetX"]`); 
var relY = browser.getValue(`//*[@id="offsetY"]`); 
//set cursor position to center and click (fragile) 
browser.moveToElement(`//*[@class="map-canvas"]`, relX, relY).mouseButtonClick(); 
相关问题