Aug 13, 2025 5:19:35 PM com.kms.katalon.core.logging.KeywordLogger startTest INFO: -------------------- Aug 13, 2025 5:19:35 PM com.kms.katalon.core.logging.KeywordLogger startTest INFO: START Test Cases/Get Report in CWS Aug 13, 2025 5:19:36 PM com.kms.katalon.core.logging.KeywordLogger logInfo INFO: Starting 'Chrome' driver Aug 13, 2025 5:19:37 PM com.kms.katalon.core.logging.KeywordLogger logInfo INFO: Action delay is set to 0 milliseconds Aug 13, 2025 5:19:37 PM com.kms.katalon.core.logging.KeywordLogger logFailed SEVERE: ❌ Unable to open browser with url: '' (Root cause: com.kms.katalon.core.exception.StepFailedException: Unable to open browser with url: '' at com.kms.katalon.core.webui.keyword.internal.WebUIKeywordMain.stepFailed(WebUIKeywordMain.groovy:117) at com.kms.katalon.core.webui.keyword.internal.WebUIKeywordMain.runKeyword(WebUIKeywordMain.groovy:43) at com.kms.katalon.core.webui.keyword.builtin.OpenBrowserKeyword.openBrowser(OpenBrowserKeyword.groovy:47) at com.kms.katalon.core.webui.keyword.builtin.OpenBrowserKeyword.execute(OpenBrowserKeyword.groovy:33) at com.kms.katalon.core.keyword.internal.KeywordExecutor.executeKeywordForPlatform(KeywordExecutor.groovy:74) at com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords.openBrowser(WebUiBuiltInKeywords.groovy:62) at Get Report in CWS.run(Get Report in CWS:68) at com.kms.katalon.core.main.ScriptEngine.run(ScriptEngine.java:194) at com.kms.katalon.core.main.ScriptEngine.runScriptAsRawText(ScriptEngine.java:119) at com.kms.katalon.core.main.TestCaseExecutor.runScript(TestCaseExecutor.java:448) at com.kms.katalon.core.main.TestCaseExecutor.doExecute(TestCaseExecutor.java:439) at com.kms.katalon.core.main.TestCaseExecutor.processExecutionPhase(TestCaseExecutor.java:418) at com.kms.katalon.core.main.TestCaseExecutor.accessMainPhase(TestCaseExecutor.java:410) at com.kms.katalon.core.main.TestCaseExecutor.execute(TestCaseExecutor.java:285) at com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:137) at com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:125) at TempTestCase1755076771835.run(TempTestCase1755076771835.groovy:25) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) Caused by: org.openqa.selenium.SessionNotCreatedException: Could not start a new session. Response code 500. Message: session not created from unknown error: cannot find Chrome binary Host info: host: 'CNM62C3LR3', ip: '10.242.162.85' Build info: version: '4.22.0', revision: 'c5f3146703' System info: os.name: 'Windows 11', os.arch: 'amd64', os.version: '10.0', java.version: '17.0.14' Driver info: com.kms.katalon.selenium.driver.CChromeDriver Command: [null, newSession {capabilities=[Capabilities {browserName: chrome, goog:chromeOptions: {args: [], extensions: []}, unhandledPromptBehavior: ignore, webSocketUrl: true}]}] at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:114) at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:75) at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:61) at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:162) at org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCommandExecutor.java:216) at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:174) at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:518) at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:232) at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:161) at org.openqa.selenium.chromium.ChromiumDriver.<init>(ChromiumDriver.java:114) at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:88) at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:83) at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:72) at com.kms.katalon.selenium.driver.CChromeDriver.<init>(CChromeDriver.java:13) at com.kms.katalon.core.webui.driver.chrome.ChromeDriverBuilder.createDriver(ChromeDriverBuilder.java:41) at com.kms.katalon.core.webui.driver.AbstractDriverBuilder.build(AbstractDriverBuilder.java:39) at com.kms.katalon.core.webui.driver.DriverFactory.startNewBrowser(DriverFactory.java:251) at com.kms.katalon.core.webui.driver.DriverFactory.openWebDriver(DriverFactory.java:161) at com.kms.katalon.core.webui.keyword.builtin.OpenBrowserKeyword$_openBrowser_closure1.doCall(OpenBrowserKeyword.groovy:40) at com.kms.katalon.core.webui.keyword.builtin.OpenBrowserKeyword$_openBrowser_closure1.call(OpenBrowserKeyword.groovy) at com.kms.katalon.core.webui.keyword.internal.WebUIKeywordMain.runKeyword(WebUIKeywordMain.groovy:35) at com.kms.katalon.core.webui.keyword.builtin.OpenBrowserKeyword.openBrowser(OpenBrowserKeyword.groovy:47) at com.kms.katalon.core.webui.keyword.builtin.OpenBrowserKeyword.execute(OpenBrowserKeyword.groovy:33) at com.kms.katalon.core.keyword.internal.KeywordExecutor.executeKeywordForPlatform(KeywordExecutor.groovy:74) at com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords.openBrowser(WebUiBuiltInKeywords.groovy:62) at Script1754445852181.run(Script1754445852181.groovy:68) ... 13 more ) Aug 13, 2025 5:19:37 PM com.kms.katalon.core.logging.KeywordLogger log SEVERE: ❌ Test Cases/Get Report in CWS FAILED. Reason: com.kms.katalon.core.exception.StepFailedException: Unable to open browser with url: '' at com.kms.katalon.core.webui.keyword.internal.WebUIKeywordMain.stepFailed(WebUIKeywordMain.groovy:117) at com.kms.katalon.core.webui.keyword.internal.WebUIKeywordMain.runKeyword(WebUIKeywordMain.groovy:43) at com.kms.katalon.core.webui.keyword.builtin.OpenBrowserKeyword.openBrowser(OpenBrowserKeyword.groovy:47) at com.kms.katalon.core.webui.keyword.builtin.OpenBrowserKeyword.execute(OpenBrowserKeyword.groovy:33) at com.kms.katalon.core.keyword.internal.KeywordExecutor.executeKeywordForPlatform(KeywordExecutor.groovy:74) at com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords.openBrowser(WebUiBuiltInKeywords.groovy:62) at Get Report in CWS.run(Get Report in CWS:68) at com.kms.katalon.core.main.ScriptEngine.run(ScriptEngine.java:194) at com.kms.katalon.core.main.ScriptEngine.runScriptAsRawText(ScriptEngine.java:119) at com.kms.katalon.core.main.TestCaseExecutor.runScript(TestCaseExecutor.java:448) at com.kms.katalon.core.main.TestCaseExecutor.doExecute(TestCaseExecutor.java:439) at com.kms.katalon.core.main.TestCaseExecutor.processExecutionPhase(TestCaseExecutor.java:418) at com.kms.katalon.core.main.TestCaseExecutor.accessMainPhase(TestCaseExecutor.java:410) at com.kms.katalon.core.main.TestCaseExecutor.execute(TestCaseExecutor.java:285) at com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:137) at com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:125) at TempTestCase1755076771835.run(TempTestCase1755076771835.groovy:25) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) Caused by: org.openqa.selenium.SessionNotCreatedException: Could not start a new session. Response code 500. Message: session not created from unknown error: cannot find Chrome binary Host info: host: 'CNM62C3LR3', ip: '10.242.162.85' Build info: version: '4.22.0', revision: 'c5f3146703' System info: os.name: 'Windows 11', os.arch: 'amd64', os.version: '10.0', java.version: '17.0.14' Driver info: com.kms.katalon.selenium.driver.CChromeDriver Command: [null, newSession {capabilities=[Capabilities {browserName: chrome, goog:chromeOptions: {args: [], extensions: []}, unhandledPromptBehavior: ignore, webSocketUrl: true}]}] at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:114) at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:75) at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:61) at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:162) at org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCommandExecutor.java:216) at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:174) at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:518) at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:232) at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:161) at org.openqa.selenium.chromium.ChromiumDriver.<init>(ChromiumDriver.java:114) at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:88) at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:83) at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:72) at com.kms.katalon.selenium.driver.CChromeDriver.<init>(CChromeDriver.java:13) at com.kms.katalon.core.webui.driver.chrome.ChromeDriverBuilder.createDriver(ChromeDriverBuilder.java:41) at com.kms.katalon.core.webui.driver.AbstractDriverBuilder.build(AbstractDriverBuilder.java:39) at com.kms.katalon.core.webui.driver.DriverFactory.startNewBrowser(DriverFactory.java:251) at com.kms.katalon.core.webui.driver.DriverFactory.openWebDriver(DriverFactory.java:161) at com.kms.katalon.core.webui.keyword.builtin.OpenBrowserKeyword$_openBrowser_closure1.doCall(OpenBrowserKeyword.groovy:40) at com.kms.katalon.core.webui.keyword.builtin.OpenBrowserKeyword$_openBrowser_closure1.call(OpenBrowserKeyword.groovy) at com.kms.katalon.core.webui.keyword.internal.WebUIKeywordMain.runKeyword(WebUIKeywordMain.groovy:35) ... 18 more Aug 13, 2025 5:19:37 PM com.kms.katalon.core.logging.KeywordLogger endTest INFO: END Test Cases/Get Report in CWS
时间: 2025-08-13 12:05:33 AIGC 浏览: 44
<think>我们正在解决Katalon Studio在Windows 11上启动Chrome浏览器时出现的“cannot find Chrome binary”错误。根据错误堆栈,核心问题是系统找不到Chrome浏览器的可执行文件路径。以下是分步解决方案:
### 1. **确认Chrome浏览器的安装路径**
- 通常情况下,Chrome默认安装在`C:\Program Files\Google\Chrome\Application\chrome.exe`或`C:\Program Files (x86)\Google\Chrome\Application\chrome.exe`。
- 如果Chrome安装在非默认位置,需要手动获取路径。可以通过右键点击Chrome快捷方式 -> 属性 -> 目标,查看完整路径。
### 2. **在Katalon脚本中指定Chrome二进制路径**
使用`ChromeOptions`设置`binary`属性,指定Chrome可执行文件的完整路径。示例代码如下:
```groovy
import org.openqa.selenium.chrome.ChromeOptions
import com.kms.katalon.core.webui.driver.DriverFactory
import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUI
ChromeOptions options = new ChromeOptions()
// 替换为你的Chrome实际路径
options.setBinary("C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe")
DriverFactory.setChromeOptions(options)
WebUI.openBrowser('')
WebUI.navigateToUrl('https://www.example.com')
```
### 3. **处理路径中的空格问题**
- 如果路径包含空格(如`Program Files`),使用双引号包裹路径或使用短路径(8.3命名规则)。
- 获取短路径的方法:在命令提示符中运行`dir /x "C:\Program Files"`,查看`Google`文件夹的短名称(如`PROGRA~1`)。
- 示例:`C:\\PROGRA~1\\Google\\Chrome\\Application\\chrome.exe`
### 4. **检查环境变量**
- 确保Chrome的安装目录已添加到系统`PATH`环境变量中。
- 步骤:右键“此电脑” -> 属性 -> 高级系统设置 -> 环境变量 -> 在`Path`中添加Chrome的目录(如`C:\Program Files\Google\Chrome\Application\`)。
- 修改后重启Katalon Studio。
### 5. **验证ChromeDriver与Chrome版本的兼容性**
- 错误也可能是由于ChromeDriver版本与Chrome浏览器版本不匹配导致。
- 检查Chrome版本:浏览器地址栏输入`chrome://settings/help`。
- 下载匹配的ChromeDriver:[Chromedriver下载页](https://chromedriver.chromium.org/downloads)
- 在Katalon中指定ChromeDriver路径:
```groovy
System.setProperty("webdriver.chrome.driver", "你的chromedriver路径")
```
### 6. **以管理员权限运行Katalon Studio**
如果遇到权限问题(如引用[1]中的错误),尝试以管理员身份运行Katalon Studio。
### 7. **使用绝对路径避免路径解析错误**
确保所有路径使用完整的绝对路径,并正确转义反斜杠(使用双反斜杠`\\`)。
### 示例脚本整合
```groovy
import org.openqa.selenium.chrome.ChromeOptions
import com.kms.katalon.core.webui.driver.DriverFactory
import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUI
// 设置Chrome二进制路径
String chromePath = "C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe"
ChromeOptions options = new ChromeOptions()
options.setBinary(chromePath)
// 可选:设置其他参数,如无头模式
// options.addArguments("--headless")
// 应用配置
DriverFactory.setChromeOptions(options)
// 打开浏览器
try {
WebUI.openBrowser('')
WebUI.navigateToUrl("https://www.google.com")
WebUI.delay(3)
WebUI.closeBrowser()
} catch (Exception e) {
println "错误信息: " + e.getMessage()
}
```
### 常见问题排查表
| 问题现象 | 解决方案 |
|----------|----------|
| 路径错误 | 检查`chrome.exe`是否存在,使用完整路径 |
| 权限不足 | 以管理员身份运行Katalon Studio |
| 版本不匹配 | 更新ChromeDriver至与Chrome兼容的版本 |
| 环境变量未生效 | 重启计算机或Katalon Studio |
通过以上步骤,应能解决“cannot find Chrome binary”错误。如果问题仍然存在,请检查系统日志或尝试重新安装Chrome浏览器。
§§相关问题§§
1. 如何在Katalon Studio中配置使用不同版本的Chrome浏览器?
2. Chrome 128版本在无头模式(headless)下有哪些新特性?
3. 在Linux服务器上如何解决ChromeDriver的权限问题?
4. Katalon Studio中如何实现跨平台(Windows/macOS/Linux)的浏览器配置?</think>### 🔍 解决 Katalon Studio 中 "cannot find Chrome binary" 错误
以下是针对 Windows 11 系统的完整解决方案,按照优先级排序:
---
#### 🚀 **核心解决方案**
1. **显式指定 Chrome 路径**
在测试脚本中添加以下代码(替换为你的实际路径):
```groovy
import org.openqa.selenium.chrome.ChromeOptions
import com.kms.katalon.core.webui.driver.DriverFactory
ChromeOptions options = new ChromeOptions()
// 检查默认安装路径是否存在
def chromePath = "C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe"
// 如果默认路径不存在,通过Everything等工具搜索真实路径
if(!new File(chromePath).exists()) {
chromePath = "D:\\PortableApps\\Chrome\\chrome.exe" // 替换为你的实际路径
}
options.setBinary(chromePath) // 关键设置
DriverFactory.setChromeOptions(options)
WebUI.openBrowser('https://your-target-url.com')
```
2. **修复权限问题**
错误日志显示 `Maybe need administrative privileges`[^1]:
- 以管理员身份运行 Katalon Studio
- 或添加目录权限:
```powershell
icacls "C:\Program Files\Google\Chrome" /grant Users:(OI)(CI)F
```
---
#### ⚙️ **深度修复方案**
3. **环境变量配置**
在 Katalon 的 `Profiles > default > execution.properties` 中添加:
```properties
webdriver.chrome.driver="C:\\katalon\\browsers\\chromedriver.exe"
webdriver.chrome.bin="C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe"
```
4. **处理路径空格问题**
使用 8.3 短路径格式:
```groovy
// 获取短路径名称
def shortPath = "C:\\PROGRA~1\\Google\\CHROME~1\\chrome.exe"
options.setBinary(shortPath)
```
在 CMD 中运行 `dir /x C:\Pro*` 查看短路径名
5. **版本兼容性检查**
```groovy
// 打印版本信息
println "Chrome 版本: " + new ChromeOptions().getBrowserVersion()
println "ChromeDriver 版本: " + org.openqa.selenium.chrome.ChromeDriver.getVersion()
```
确保主版本号一致(如 Chrome 115.x 对应 ChromeDriver 115.x)
---
#### 🛠️ **高级调试技巧**
6. **独立验证 Chrome 路径**
在测试用例前添加验证代码:
```groovy
def chromeFile = new File("C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe")
if(chromeFile.exists()) {
println "✅ Chrome 路径验证通过"
} else {
println "❌ Chrome 未找到,请检查路径"
// 自动搜索可能的路径
def possiblePaths = [
"C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe",
"${System.getenv('LOCALAPPDATA')}\\Google\\Chrome\\Application\\chrome.exe"
]
possiblePaths.each { path ->
if(new File(path).exists()) {
println "发现备用路径: $path"
options.setBinary(path)
}
}
}
```
7. **远程调试模式**
参考引用[2]的远程调试方案:
```groovy
options.addArguments("--remote-debugging-port=9222")
options.setBinary("C:\\Path\\To\\chrome.exe")
```
---
### 📌 配置检查表
| 检查项 | 正确示例 | 验证命令 |
|-------|---------|---------|
| Chrome 安装路径 | `C:\Program Files\Google\Chrome\Application\` | `dir "C:\Program Files\Google\Chrome\Application\chrome.exe"` |
| 环境变量 | `PATH` 包含 Chrome 目录 | `echo %PATH%` |
| Katalon 配置 | 在 `execution.properties` 设置路径 | 查看配置文件 |
| 权限设置 | Users 组有完全控制权 | `icacls "C:\Program Files\Google\Chrome"` |
| 版本匹配 | Chrome 115.x / ChromeDriver 115.x | `chrome://version` |
---
### 💡 永久解决方案
在 `Test Listeners` 中添加全局配置:
```groovy
class ChromeConfig {
@BeforeTestCase
def setupChrome() {
ChromeOptions options = new ChromeOptions()
options.setBinary("C:\\Verified\\Path\\chrome.exe")
options.addArguments("--disable-blink-features=AutomationControlled")
DriverFactory.setChromeOptions(options)
}
}
```
> 注意:如果使用企业版 Chrome 或特殊版本(如 Chromium),需确保 `chrome.exe` 和 `chromedriver.exe` 来自相同构建版本[^1]。
阅读全文