Selenium ChromeDriver 给出 "InitializeSandbox() called with multiple threads in process gpu-process" 错误
Selenium ChromeDriver gives "InitializeSandbox() called with multiple threads in process gpu-process" error
我正在尝试使用 selenium chrome 驱动程序打开一个网站。我已经添加了一些我在其他类似问题中看到的论点,但它并没有解决问题。我基本上是这个代码:
String baseUrl = "https://somesite.com";
System.setProperty("webdriver.chrome.driver", "/usr/bin/google-chrome");
ChromeDriverService service = ChromeDriverService.createDefaultService();
ChromeOptions options = new ChromeOptions();
options.addArguments("--start-maximized");
options.addArguments("--disable-infobars");
options.addArguments("--disable-gpu");
options.addArguments("--disable-software-rasterizer");
options.addArguments("no-sandbox");
options.addArguments("headless");
options.addArguments("--enable-native-gpu-memory-buffers");
driver = new ChromeDriver(service, options);
driver.get(baseUrl);
当我 运行 上述代码时,chrome 打开但页面没有改变。它还给出了这个输出:
[61263:61263:0903/005049.885829:ERROR:sandbox_linux.cc(374)] InitializeSandbox() called with multiple threads in process gpu-process.
为什么会这样?
注意:我的 OS 是 ubuntu 20.04.
这个错误信息...
ERROR:sandbox_linux.cc(374)] InitializeSandbox() called with multiple threads in process gpu-process.
...是一个常见的 Google Chrome 错误,当尝试 运行 它时 Linux 由于 Chrome 的 GPU 使用。
首先,System.setProperty()
行接受绝对路径的keywebdriver.chrome.driver
和value的 。所以而不是:
System.setProperty("webdriver.chrome.driver", "/usr/bin/google-chrome");
您需要:
System.setProperty("webdriver.chrome.driver", "/path/to/chromedriver");
结尾
通常可以通过使用以下标志避免 GPU 硬件加速来解决此错误:
--disable-gpu
:禁用GPU硬件加速。如果软件渲染器未到位,则 GPU 进程将不会启动
--disable-software-rasterizer
: 禁止使用 3D 软件光栅器
代码片段:
options.addArguments("--disable-gpu");
options.addArguments("--disable-software-rasterizer");
我正在尝试使用 selenium chrome 驱动程序打开一个网站。我已经添加了一些我在其他类似问题中看到的论点,但它并没有解决问题。我基本上是这个代码:
String baseUrl = "https://somesite.com";
System.setProperty("webdriver.chrome.driver", "/usr/bin/google-chrome");
ChromeDriverService service = ChromeDriverService.createDefaultService();
ChromeOptions options = new ChromeOptions();
options.addArguments("--start-maximized");
options.addArguments("--disable-infobars");
options.addArguments("--disable-gpu");
options.addArguments("--disable-software-rasterizer");
options.addArguments("no-sandbox");
options.addArguments("headless");
options.addArguments("--enable-native-gpu-memory-buffers");
driver = new ChromeDriver(service, options);
driver.get(baseUrl);
当我 运行 上述代码时,chrome 打开但页面没有改变。它还给出了这个输出:
[61263:61263:0903/005049.885829:ERROR:sandbox_linux.cc(374)] InitializeSandbox() called with multiple threads in process gpu-process.
为什么会这样?
注意:我的 OS 是 ubuntu 20.04.
这个错误信息...
ERROR:sandbox_linux.cc(374)] InitializeSandbox() called with multiple threads in process gpu-process.
...是一个常见的 Google Chrome 错误,当尝试 运行 它时 Linux 由于 Chrome 的 GPU 使用。
首先,System.setProperty()
行接受绝对路径的keywebdriver.chrome.driver
和value的
System.setProperty("webdriver.chrome.driver", "/usr/bin/google-chrome");
您需要:
System.setProperty("webdriver.chrome.driver", "/path/to/chromedriver");
结尾
通常可以通过使用以下标志避免 GPU 硬件加速来解决此错误:
--disable-gpu
:禁用GPU硬件加速。如果软件渲染器未到位,则 GPU 进程将不会启动--disable-software-rasterizer
: 禁止使用 3D 软件光栅器
代码片段:
options.addArguments("--disable-gpu");
options.addArguments("--disable-software-rasterizer");