kam*_*yrb 15 java ubuntu selenium selenium-chromedriver selenium-webdriver
我正在尝试使用 selenium chromedriver 打开一个网站。我已经添加了一些我在其他类似问题中看到的论点,但它没有解决问题。我基本上有这个代码:
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);
Run Code Online (Sandbox Code Playgroud)
当我运行上面的代码时,chrome 打开但页面没有改变。它还给出了这个输出:
[61263:61263:0903/005049.885829:ERROR:sandbox_linux.cc(374)] InitializeSandbox() called with multiple threads in process gpu-process.
Run Code Online (Sandbox Code Playgroud)
为什么会发生这种情况?
注意:我的操作系统是ubuntu 20.04。
Deb*_*anB 16
这个错误信息...
\nERROR:sandbox_linux.cc(374)] InitializeSandbox() called with multiple threads in process gpu-process.\nRun Code Online (Sandbox Code Playgroud)\n...是由于 Chrome\xe2\x80\x99s GPU 使用而尝试在 Linux 中运行 Google Chrome 时出现的常见错误。
\n首先,System.setProperty()line 接受ChromeDriver的绝对路径的键 webdriver.chrome.driver和值。所以而不是:
System.setProperty("webdriver.chrome.driver", "/usr/bin/google-chrome");\nRun Code Online (Sandbox Code Playgroud)\n你需要:
\nSystem.setProperty("webdriver.chrome.driver", "/path/to/chromedriver");\nRun Code Online (Sandbox Code Playgroud)\n一般来说,可以通过使用以下标志避免 GPU 硬件加速来解决此错误:
\n--disable-gpu:禁用 GPU 硬件加速。如果软件渲染器未到位,则 GPU 进程将不会启动--disable-software-rasterizer:禁用 3D 软件光栅器的使用代码片段:
\noptions.addArguments("--disable-gpu");\noptions.addArguments("--disable-software-rasterizer");\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
28906 次 |
| 最近记录: |