ERROR:gl_surface_egl.cc(668)] EGL驱动程序消息(错误)eglQueryDeviceAttribEXT:使用来自Selenium Python的ActionChains的错误属性错误

问题描述 投票:0回答:1

当我运行代码时:

for i in elementsList:
    action = ActionChains(driver)
    action.key_down(Keys.CONTROL).click(i).key_up(Keys.CONTROL).perform()

它有效(是)并回显此错误:

[0125/121353.774: ERROR:gl_surface_egl.cc(668)] EGL Driver message (Error) eglQueryDeviceAttribEXT: Bad attribute.

数字“ 121353.774”不是const,它每轮增加一次

怎么了?

python selenium selenium-webdriver action egl
1个回答
0
投票

此错误消息...

ERROR:gl_surface_egl.cc(668)] EGL Driver message (Error) eglQueryDeviceAttribEXT: Bad attribute.

...是一条DEBUG消息,表示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;

深潜

[--use-gl参数选择应使用GPU进程的GL实现,可用选项为:

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

    DEBUG

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

其他注意事项

但是,按照最佳实践,如果您的用例涉及调用--use-gl,则需要为click()引入WebDriverWait,如下所示:

element_to_be_clickable()

在创建List

的用例中,您需要为ActionChains(driver).key_down(Keys.CONTROL).click(i).key_up(Keys.CONTROL).perform() 生成WebDriverWait,如下所示:
visibility_of_all_elements_located()

Note

:您必须添加以下导入:
for i in WebDriverWait(driver, 30).until(EC.visibility_of_all_elements_located((By.CSS_SELECTOR, "elements_css"))):
    action = ActionChains(driver)
    action.key_down(Keys.CONTROL).click(i).key_up(Keys.CONTROL).perform()

PS:from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC 中的121353.774是部分时间戳


Outro

[可能是因为清单需要0125/121353.774 3功能,但此错误是由ES2-only设备启动的应用程序引起的。将ESEGL_RENDERABLE_TYPE更新为EGL_OPENGL_ES2_BIT将解决此问题。

© www.soinside.com 2019 - 2024. All rights reserved.