bsb036 2022-01-11 10:11 采纳率: 43.8%
浏览 263
已结题

再次提问:在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)也是同理,而且不知道如何缩放。

  • 写回答

2条回答 默认 最新

  • CSDN专家-showbo 2022-01-11 10:42
    关注

    这个地图的实例是全局变量,可以调用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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 1月19日
  • 已采纳回答 1月11日
  • 创建了问题 1月11日

悬赏问题

  • ¥15 netty整合springboot之后自动重连失效
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击