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

再次提问:在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 帮我解决一下膳食平衡的线性规划模型的数据实例
  • ¥40 万年历缺少农历,需要和阳历同时显示
  • ¥250 雷电模拟器内存穿透、寻基址和特征码的教学
  • ¥200 比特币ord程序wallet_constructor.rs文件支持一次性铸造1000个代币,并将它们分配到40个UTXO上(每个UTXO上分配25个代币),并设置找零地址
  • ¥15 关于Java的学习问题
  • ¥15 如何使用chatgpt完成文本分类任务?
  • ¥15 已知速度v关于位置s的等式,怎么转化为已知位置求速度v的等式
  • ¥15 我有个餐饮系统,用wampserver把环境配置好了,但是后端的网页却进去,是为什么,能不能帮远程一下?
  • ¥15 R运行没有名称为"species"的插槽对于此对象类"SDMmodelCV"
  • ¥20 基于决策树的数字信号处理,2ask 2psk 2fsk的代码,检查下报错的原因