随机硒错误EGL驱动程序消息(错误)

时间:2019-07-18 08:31:34

标签: python selenium google-chrome

我从硒中收到随机错误消息,即使它们都与我正在运行的确切Web驱动程序命令无关(我不知道)。

此错误不会中断程序,只是在添加不需要的警报(使我的打印件更难阅读)。

Chrome版本:75.0.3770.100(正式版本)(64位)

Python版本:3.6.1

ChromeDriver版本:75.0.3770.140

我已经添加了以下代码,但是仍然出现错误。

options.add_argument("--log-level=3")

gl_surface_egl.cc(544)-EGL驱动程序消息(错误)eglQueryDeviceAttribEXT:错误的属性。

2 个答案:

答案 0 :(得分:1)

此随机错误消息...

gl_surface_egl.cc(544) - EGL Driver message (Error) eglQueryDeviceAttribEXT: Bad attribute.

...来自LogEGLDebugMessage()方法,因为其中一个GL Switches出现错误

此错误在gl_surface_egl.cc中的定义如下:

static void EGLAPIENTRY LogEGLDebugMessage(EGLenum error,
                       const char* command,
                       EGLint message_type,
                       EGLLabelKHR thread_label,
                       EGLLabelKHR object_label,
                       const char* message) {
  std::string formatted_message = std::string("EGL Driver message (") +
                  GetDebugMessageTypeString(message_type) +
                  ") " + command + ": " + message;

深潜

根据List of Chromium Command Line Switches中的文档,参数--use-gl选择应使用GPU进程的GL实现,并且可用的选项为:

  • 桌面:用户安装的任何桌面OpenGL(默认为Linux和Mac)。
  • egl :用户已安装的任何EGL / GLES2(Windows默认设置-实际为ANGLE)。
  • swiftshader :SwiftShader软件渲染器。

DEBUG 消息无害,您可以继续进行测试。


解决方案

如果您的用例涉及调用click()send_keys()方法,则需要为element_to_be_clickable()引入 WebDriverWait ,如下所示:

  • 调用click()

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "element_css"))).click()
    
  • 调用send_keys()

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "element_xpath"))).send_keys("Joseph Jones")
    

其他注意事项

可能的是,此错误是由ES2-only设备启动的应用引起的,即使清单要求具备ES 3的功能。将EGL_RENDERABLE_TYPEEGL_OPENGL_ES2_BIT更新为 EGL_OPENGL_ES3_BIT 将解决此问题。

答案 1 :(得分:1)

chrome://gpu 页面是一个很好的引导。 我的经验是:在设置菜单中禁用硬件加速会导致错误消息停止,但让我用作基准测试的 Babylon.js 演示运行非常缓慢。 我浏览并启用了所有在 chrome://gpu 上显示为红色的功能。 我现在在启动 Chrome 时遇到了一个不会重复的新错误:

[13837:13837:0505/004321.484642:ERROR:sandbox_linux.cc(374)] InitializeSandbox() called with multiple threads in process gpu-process.

偶尔:

[13801:13801:0505/005551.603893:ERROR:CONSOLE(15)] "Uncaught TypeError: Do not know how to serialize a BigInt", source: chrome://gpu/vulkan_info.js (15)

不过,该基准现在运行良好。希望这对我以外的人有用。我在使用 AMD GPU 驱动程序的 Linux 上,从“检测到的问题”部分来看,我怀疑这是我的情况的一个促成因素。好吧,祝你好运!