Selenium Chrome驱动程序在macOS上崩溃

我有一个WebRTC项目的自动化测试。当我尝试使用具有允许的使用权限的麦克风时,chrome驱动程序在macOS上崩溃。一切都可以在Linux上运行,问题只存在于macOS。

    val options = ChromeOptions()
    val prefs = HashMap<String,Any>()
    prefs["intl.accept_languages"] = "de"
    prefs["profile.default_content_setting_values.media_stream_mic"] = 1
    options.setExperimentalOption("prefs",prefs)
    val driver = ChromeDriver(options) 

chrome驱动程序的日志:

[1111/144648.290128:WARNING:process_memory_mac.cc(93)] mach_vm_read(0x7ffee3670000,0x2000): (os/kern) invalid address (1)
[1111/144648.443304:WARNING:system_snapshot_mac.cc(42)] sysctlbyname kern.nx: No such file or directory (2)
[1111/144648.462626:WARNING:crash_report_exception_handler.cc(239)] UniversalExceptionRaise: (os/kern) failure (5)
[1573480008.479][SEVERE]: Unable to receive message from renderer
[1573480008.479][INFO]: Waiting for pending navigations...
[1573480008.479][INFO]: Done waiting for pending navigations. Status: disconnected: not connected to DevTools
[1573480008.479][DEBUG]: DevTools HTTP Request: http://localhost:63323/json
[1573480008.480][DEBUG]: DevTools HTTP Request failed

有人知道会导致崩溃的原因吗?是否有任何设置,例如内存等?还是这只是硒中的错误?

linqiang624 回答:Selenium Chrome驱动程序在macOS上崩溃

经过大量实验,我能够解决此问题。但是我仍然无法解释为什么仅在macOS上会发生这种情况。这似乎是实验选择的根本原因。也许有充分的理由将其称为实验性=)我发现可以使用以下选项来代替使用prefs["profile.default_content_setting_values.media_stream_mic"] = 1来允许使用麦克风:options.addArguments("--use-fake-ui-for-media-stream")可以在Linux和macOS上使用。 chrome驱动程序的完整设置如下:

val options = ChromeOptions()
val prefs = HashMap<String,Any>()
prefs["intl.accept_languages"] = "de"
options.setExperimentalOption("prefs",prefs)
options.addArguments("--use-fake-ui-for-media-stream")
val driver = ChromeDriver(options) 

此外,对于Firefox:

val profile = FirefoxProfile()
profile.setPreference("intl.accept_languages","de")

val options = FirefoxOptions()
options.profile = profile
options.addPreference("media.navigator.streams.fake",true)
return BrowserProfile.initDriver(FirefoxDriver(options))
本文链接:https://www.f2er.com/3123465.html

大家都在问