Selenium Chrome WebDriver 定位 之2
之前在 Selenium Chrome WebDriver 定位 有記錄過 Chrome 模擬定位,但前陣子遇到 CDP 送了定位但沒有用的情況。
Selenium Chrome WebDriver 定位 之2
之前在 Selenium Chrome WebDriver 定位 有記錄過 Chrome 模擬定位,但前陣子遇到 CDP 送了定位但沒有用的情況。
所以我實際使用 Chrome 送一次 CDP command 試試。
- 首先,允許網站定位。
- 接著在開發者工具中找到 Protocol Monitor(沒有開啟過的話,需要先去 Settings > Experiments > Protocol Monitor 勾選)。
然後試著在有問題的頁面送 CDP command⋯⋯ 這時候我發現 Protocol Monitor 有 target 可以選擇;我遇到「送了定位但沒有用」的頁面中有很多 target。
或許是沒有指定時,我 CDP command 沒有送到 main。
看了一下官方文件怎麼指定 target。
- 先用 Target.getTargets 取得所有 target:
driver.execute_cdp_cmd("Target.getTargets", {})
會得到一個 object。
- 拿到你要的 url 的 targetId 之後,attachToTarget 得到 session id:
driver.execute_cdp_cmd("Target.attachToTarget", { "targetId": target_id, "flatten": True })
- 現在就可以送 CDP command 給特定 target 了:
"Emulation.setGeolocationOverride", { "latitude": lat, "longitude": lng, "accuracy": 10, "sessionId" : session_id }
메타데이터
- post_id
- a4fc2f19b0fd
- slug
- selenium-chrome-webdriver-定位-之2-a4fc2f19b0fd
- url
- https://medium.com/@goescat/selenium-chrome-webdriver-%E5%AE%9A%E4%BD%8D-%E4%B9%8B2-a4fc2f19b0fd
- canonical_url
- https://medium.com/@goescat/selenium-chrome-webdriver-%E5%AE%9A%E4%BD%8D-%E4%B9%8B2-a4fc2f19b0fd
- author_url
- https://medium.com/@goescat
- status
- ok
- fetched_at
- 2026-07-19 22:17:22