再次提问:在python中使用selenium对地图网页移动和缩放

问题遇到的现象和发生背景

https://smart.zj121.com/radarNew/index.html该网页打开后是以杭州为中心,想以其他城市为中心,底图并放大。

问题相关代码,请勿粘贴截图
from selenium import webdriver
from selenium.webdriver import ActionChains
import time
 
chrome_driver = 'd:/test/chromedriver.exe'
driver = webdriver.Chrome(executable_path=chrome_driver)
driver.maximize_window()
driver.get('https://smart.zj121.com/radarNew/index.html')
source = driver.find_element_by_id("radarLeft")
ActionChains(driver).move_by_offset(xoffset=200, yoffset=200).perform()
time.sleep(2)
driver.get_screenshot_as_file("d:/test/radar.png")
driver.quit()

运行结果及报错内容

运行没有报错,但是也没有达到想要的效果,本想使用drag_and_drop_by_offset(source, xoffset, yoffset)但是不知道source该选取哪个元素,click_and_hold(on_element=None)和move_by_offset(xoffset, yoffset)也是同理,而且不知道如何缩放。

这个地图的实例是全局变量,可以调用execute_script来调用实例api实现放大缩小和重新定位(需要知道经纬度,经纬度题主可以先打开浏览器拖动到需要的中心点,然后f12打开控制台,然后输入map.getCenter()得到中心点的经纬度,放大倍数输入map.getZoom()获取,如下图)

img

其他功能题主可以研究下地图的api,API和高德地图基本一致,应该是居于高德的2次开发

下面为示例

driver.execute_script("map.setZoom(13)")#放大到13倍,如下图

img

driver.execute_script("map.setView({lat:40.02130468739707,lng:116.73797607421876},7)")#定位到北京的经纬度,7倍大小

img

主要用到
map.setZoom(放大倍数【3~18左右的数字】)

map.setView({lat:纬度【浮点数】,lng:经度【浮点数】},放大倍数【3~18左右的数字】)

这2个API,实际用就用map.setView就可以

img

飘过~标记学习