如何通过adb在Android设备的Chrome上运行Selenium WebDriver?
操控adb连接的Android Chrome浏览器(Selenium Python)
关键要点
你不需要Selenium Grid,用Remote WebDriver配合Chrome的远程调试功能就足够了。你提到的类似gdb-server的WebDriver等价工具,其实就是Chrome内置的远程调试端口——它允许外部工具(比如ChromeDriver、Selenium)连接并控制浏览器,和gdb-server给程序开调试端口的逻辑一致。
具体实现步骤
1. 前置检查
- 电脑安装的
ChromeDriver版本必须和手机Chrome的大版本匹配(比如Chrome 119对应ChromeDriver 119,版本不匹配会直接报错) - 手机开启USB调试,通过
adb devices命令确认设备已成功连接到电脑
2. 映射Chrome远程调试端口
在终端执行adb端口转发命令,把手机上Chrome的调试端口映射到电脑本地端口(这里以9222为例):
adb forward tcp:9222 localabstract:chrome_devtools_remote
这条命令的作用是将手机Chrome的调试入口(chrome_devtools_remote)暴露到电脑的9222端口,相当于给Chrome开了一个可远程控制的通道。
3. Python代码示例
用Remote WebDriver连接到转发后的端口,即可像操控本地浏览器一样控制手机Chrome:
from selenium import webdriver from selenium.webdriver.chrome.options import Options # 配置Chrome选项,指定调试地址 chrome_options = Options() chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9222") # 初始化Remote WebDriver driver = webdriver.Remote( command_executor="http://localhost:9222", options=chrome_options ) # 执行需要的操作,用法和本地浏览器完全一致 driver.get("https://example.com") print(driver.title) # 关闭连接 driver.quit()
额外说明
- Selenium Grid适用于多设备并行测试、分布式测试场景,单设备调试完全没必要使用。
- 另一种方式是直接给手机Chrome添加
--remote-debugging-port=9222启动参数,但需要root权限或通过adb shell启动Chrome,操作比端口转发复杂,不推荐新手使用。
内容的提问来源于stack exchange,提问作者August Vrubel
相关产品推荐
相关产品推荐

