网页中嵌入了地图。我想点击地图上的图钉。我可以将 JS 注入页面,或使用 Selenium 可用的任何 API。
问题是我在页面上的嵌入地图中找不到图钉。
可能的解决方案:
我已经考虑过提前并转移点击侦听器的注册,但如果有人以前这样做过并且可以给我提示,我将不胜感激。
这是一个使用 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();
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句