2017-04-07 1 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(); 
관련 문제