当我运行代码时:
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,它每轮增加一次
怎么了?
此错误消息...
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实现,可用选项为:
此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
是部分时间戳
[可能是因为清单需要0125/121353.774
3功能,但此错误是由ES2-only
设备启动的应用程序引起的。将ES
从EGL_RENDERABLE_TYPE
更新为EGL_OPENGL_ES2_BIT
将解决此问题。