Selenium - Could not start a new session. Response code 500. Message: unknown error: cannot create temp dir for unpacking extensions
Selenium - Could not start a new session. Response code 500. Message: unknown error: cannot create temp dir for unpacking extensions
问题
我正在尝试从 Java 应用程序(更具体地说是 Talend 作业)中 运行 Selenium。作业 运行 在本地很好,但是,当它部署到 Windows Server 2019 时,我收到以下错误:
Could not start a new session. Response code 500. Message: unknown error: cannot create temp dir for unpacking extensions
这是我的 Selenium Java 代码:
Map<String, Object> prefs = new HashMap<String, Object>();
prefs.put("download.default_directory", "C:\data\");
ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("prefs", prefs);
options.addArguments("--no-sandbox");
options.addArguments("--headless");
options.addArguments("--disable-gpu");
options.addArguments("--disable-dev-shm-usage");
options.addArguments("--profile-directory=Default");
options.addArguments("--user-data-dir=C:\Temp");
WebDriver driver = new ChromeDriver(options);
JavascriptExecutor js = (JavascriptExecutor) driver;
Map<String, Object> vars = new HashMap<String, Object>();
driver.get("<URI>");
driver.findElement(By.id("<a valid element id for my case>")).click();
Thread.sleep(3000);
driver.close();
driver.quit();
我尝试过的事情
- 正在将 TMP 和 TEMP 环境变量设置为 C:\Temp
- 通过可执行文件的属性对话框将 chromedriver.exe 可执行文件设置为“运行 作为管理员”
- 将
---user-data-dir
标志设置为 C:\Temp(如上所示)
- 正在删除 Temp 目录(默认和当前 C:\Temp 我正在尝试)
- 已验证驱动器有足够的空闲空间 space
- 正在重启服务器
- 正在将 chromedriver.exe 降级到 Chrome 版本 101、100 和 99
- 将 --user-data-dir 更改为 C:\Temp
- 将“退出时不删除临时文件夹”和“每个会话不使用临时文件夹”组策略标志设置为“已启用”
500 错误代码表示服务器有问题。鉴于您已经尝试重新启动并检查服务器的磁盘 space,问题可能与临时目录有关。
转到 windows CLI 并执行 echo %temp%
:
一些用户正在 C:\TEMP
返回。如果发生这种情况(或任何其他文件夹名称),请创建新文件夹并确保您 运行 作为管理员
问题的根本原因实际上与 Java 代码是以 SYSTEM 用户而不是命名帐户执行的事实有关。 (具体来说,Talend Remote Engine 运行 作为 SYSTEM)。我将代码切换为 运行 作为已解决错误的命名帐户。
问题
我正在尝试从 Java 应用程序(更具体地说是 Talend 作业)中 运行 Selenium。作业 运行 在本地很好,但是,当它部署到 Windows Server 2019 时,我收到以下错误:
Could not start a new session. Response code 500. Message: unknown error: cannot create temp dir for unpacking extensions
这是我的 Selenium Java 代码:
Map<String, Object> prefs = new HashMap<String, Object>();
prefs.put("download.default_directory", "C:\data\");
ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("prefs", prefs);
options.addArguments("--no-sandbox");
options.addArguments("--headless");
options.addArguments("--disable-gpu");
options.addArguments("--disable-dev-shm-usage");
options.addArguments("--profile-directory=Default");
options.addArguments("--user-data-dir=C:\Temp");
WebDriver driver = new ChromeDriver(options);
JavascriptExecutor js = (JavascriptExecutor) driver;
Map<String, Object> vars = new HashMap<String, Object>();
driver.get("<URI>");
driver.findElement(By.id("<a valid element id for my case>")).click();
Thread.sleep(3000);
driver.close();
driver.quit();
我尝试过的事情
- 正在将 TMP 和 TEMP 环境变量设置为 C:\Temp
- 通过可执行文件的属性对话框将 chromedriver.exe 可执行文件设置为“运行 作为管理员”
- 将
---user-data-dir
标志设置为 C:\Temp(如上所示) - 正在删除 Temp 目录(默认和当前 C:\Temp 我正在尝试)
- 已验证驱动器有足够的空闲空间 space
- 正在重启服务器
- 正在将 chromedriver.exe 降级到 Chrome 版本 101、100 和 99
- 将 --user-data-dir 更改为 C:\Temp
- 将“退出时不删除临时文件夹”和“每个会话不使用临时文件夹”组策略标志设置为“已启用”
500 错误代码表示服务器有问题。鉴于您已经尝试重新启动并检查服务器的磁盘 space,问题可能与临时目录有关。
转到 windows CLI 并执行 echo %temp%
:
一些用户正在 C:\TEMP
返回。如果发生这种情况(或任何其他文件夹名称),请创建新文件夹并确保您 运行 作为管理员
问题的根本原因实际上与 Java 代码是以 SYSTEM 用户而不是命名帐户执行的事实有关。 (具体来说,Talend Remote Engine 运行 作为 SYSTEM)。我将代码切换为 运行 作为已解决错误的命名帐户。