Windows 7下ChromeDriver、Chrome默认路径及Appium+Java启动相关技术问询
刚好对这块比较熟,给你详细拆解下这几个问题:
Windows 7下Appium + java-client.jar场景的默认路径
ChromeDriver二进制文件的默认位置
- 如果你是用Appium Desktop安装包装的Appium,ChromeDriver默认藏在这里:
C:\Program Files (x86)\Appium\node_modules\appium-chromedriver\chromedriver\win\chromedriver.exe - 要是通过npm全局安装的Appium,路径一般是:
C:\Users\[你的用户名]\AppData\Roaming\npm\node_modules\appium\node_modules\appium-chromedriver\chromedriver\win\chromedriver.exe
Chrome二进制文件的默认位置
Windows 7上Chrome的标准安装路径分两种:
- 32位系统:
C:\Program Files\Google\Chrome\Application\chrome.exe - 64位系统:
C:\Program Files (x86)\Google\Chrome\Application\chrome.exe
Appium会默认从这个路径找Chrome,除非你在DesiredCapabilities里通过chromeOptions的binary参数指定了自定义路径。
RemoteWebDriver启动Chrome时ChromeDriver的查找逻辑
当你用RemoteWebDriver启动Chrome时,ChromeDriver的查找是有优先级顺序的:
- 代码指定的路径优先:如果你在代码里通过系统属性
webdriver.chrome.driver或者ChromeOptions的参数指定了ChromeDriver路径,会直接用这个。比如:// 设置ChromeDriver路径 System.setProperty("webdriver.chrome.driver", "D:\\tools\\chromedriver.exe"); // 或者通过ChromeOptions指定Chrome二进制路径 ChromeOptions options = new ChromeOptions(); options.setBinary("D:\\apps\\chrome.exe"); capabilities.setCapability(ChromeOptions.CAPABILITY, options); - 检查系统PATH环境变量:如果没手动指定,Selenium会去系统的PATH变量包含的目录里找
chromedriver.exe,只要这个文件在PATH的目录里,就能被自动找到。 - Appium托管的ChromeDriver(当连接Appium服务器时):如果你的
RemoteWebDriver是连接到Appium服务器的,那Appium会用它自己管理的ChromeDriver(就是前面说的Appium安装目录下的那个),除非你在DesiredCapabilities里用chromedriverExecutable参数指定了自定义的ChromeDriver路径。
从你给出的代码片段来看,目前没有配置Chrome相关的路径参数,这种情况下Appium会自动用上面说的默认路径去查找Chrome和ChromeDriver;如果是直接用RemoteWebDriver连接独立的ChromeDriver服务器,就会按PATH或者你后续补充的指定路径来查找。
内容的提问来源于stack exchange,提问作者Achu




