0
嵌入在網頁中的地圖。我想點擊地圖上的一個別針。我可以將JS注入頁面,或者使用Selenium可用的任何API。如何在JavaScript中嵌入的Google地圖上點擊圖釘?
問題是我無法在頁面上的嵌入式地圖中找到該引腳。
可能的解決方案:
我已經考慮過讓它領先於點擊監聽器,但是如果以前有人這樣做,並且可以給我一個提示,我將不勝感激。
嵌入在網頁中的地圖。我想點擊地圖上的一個別針。我可以將JS注入頁面,或者使用Selenium可用的任何API。如何在JavaScript中嵌入的Google地圖上點擊圖釘?
問題是我無法在頁面上的嵌入式地圖中找到該引腳。
可能的解決方案:
我已經考慮過讓它領先於點擊監聽器,但是如果以前有人這樣做,並且可以給我一個提示,我將不勝感激。
這是一個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();