我从硒中收到随机错误消息,即使它们都与我正在运行的确切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:错误的属性。
答案 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实现,并且可用的选项为:
此 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_TYPE
从EGL_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 上,从“检测到的问题”部分来看,我怀疑这是我的情况的一个促成因素。好吧,祝你好运!