我正在试着用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);
当我运行上面的代码时,chrome打开了,但是页面没有改变。它还给出了以下输出:
[61263:61263:0903/005049.885829:ERROR:sandbox_linux.cc(374)] InitializeSandbox() called with multiple threads in process gpu-process.
为什么会发生这种情况?
注:我的操作系统是ubuntu 20.04。
发布于 2021-09-02 22:49:57
此错误消息...
ERROR:sandbox_linux.cc(374)] InitializeSandbox() called with multiple threads in process gpu-process.
...is一个常见的谷歌浏览器错误,当尝试在Linux上运行它时,由于Chrome的使用。
首先,System.setProperty()
行接受关键字webdriver.chrome.driver
和ChromeDriver的绝对路径的值。因此,不是:
System.setProperty("webdriver.chrome.driver", "/usr/bin/google-chrome");
您需要:
System.setProperty("webdriver.chrome.driver", "/path/to/chromedriver");
超外
通常,可以通过使用以下标志避免GPU硬件加速来解决此错误:
--disable-gpu
:会关闭GPU硬件加速。如果软件渲染器不在适当的位置,则GPU进程不会launch--disable-software-rasterizer
:禁用3D软件光栅化器代码片段:
options.addArguments("--disable-gpu");
options.addArguments("--disable-software-rasterizer");
https://stackoverflow.com/questions/69037458
复制相似问题