Man*_*cob 5 selenium capybara selenium-chromedriver selenium-webdriver
在我的应用程序中,某些元素仅应在设备支持悬停时出现。因此,我使用以下 CSS:
\n\n@media(hover: none) {\n #present-only-if-device-supports-hover {\n display: none;\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n\n为了使用 Capybara 进行测试,我\xe2\x80\x99d 喜欢模拟具有悬停功能的设备。到目前为止,我只能让它在非无头模式下工作。
\n\n我使用以下检查:
\n\nexpect(page).to have_selector('#present-only-if-device-supports-hover', visible: true)\nRun Code Online (Sandbox Code Playgroud)\n\n有了 driver :selenium_chrome,检查就通过了。不过,与司机:selenium_chrome_headless,检查会失败,因为该元素不可见。
(作为旁注:Capybara::Node::Element#hover适用于两个驱动程序。)
我尝试了一些方法,但\xe2\x80\x99并没有改变这种行为:
\n\noptions.add_emulation(device_metrics: {width: 800, height: 800, pixelRatio: 1, touch: false}),因为禁用触摸似乎可以启用悬停。确实,改变:touch为true使其停止在非无头模式下工作。但在无头模式下,两者都不起作用。webkit.webprefs.available_hover_types和webkit.webprefs.primary_hover_type首选项(我在 Chromium 代码检查期间发现的)设置为1,但它没有\xe2\x80\x99t 有任何效果。我也尝试过离开webkit.webprefs.。更多建议?
\n| 归档时间: |
|
| 查看次数: |
383 次 |
| 最近记录: |