【问题标题】:How to check that a background image is loaded in Selenium?如何检查 Selenium 中是否加载了背景图像?
【发布时间】:2014-01-15 20:09:52
【问题描述】:

有一个包含大量图像的页面。图像设置为 CSS 样式背景,如下所示:

<div style="background-image: url(&quot;http://test.com/abc123.jpg&quot;);">

页面加载,但有时,某些图像加载。 URL 仍然设置,DIV 具有正确的大小,只有图像本身不显示。 (这可能是由于浏览器、服务器或网络问题,但在这里并不重要——我们只想知道图像是否已加载)。

如何检查这样的背景图片是否已加载?

【问题讨论】:

  • 你必须实现一个代理。您必须检查该图像的 GET 请求究竟返回了什么:jimevansmusic.blogspot.co.uk/2013/08/… ...
  • 如果由于任何原因可以实现代理,您可以使用Sikuli来验证图像。请参阅 Sikuli.org 网站,或者如果您使用 Java,您可以直接查看此链接 - doc.sikuli.org/faq/030-java-dev.html
  • 我会记住 Sikuli 以备后用。除了使用另一个测试库或设置代理之外,真的没有办法解决这个问题吗?
  • (这是可供浏览器使用的数据,请注意 - 例如,如果您将鼠标悬停在 Firebug 中 HTML/Styles 下的图像 URL 上,您会得到无法加载 URL 的信息。问题是只有如何才能将这些信息输入 Selenium...)
  • 我尝试了这里的建议 stackoverflow.com/questions/11049344/… 和这里:stackoverflow.com/questions/85992/… ...无济于事。奇怪的是,对于必须成为常见问题的问题似乎没有(简单的)解决方案。

标签: selenium webdriver


【解决方案1】:

您可以获取浏览器日志并分析错误https://code.google.com/p/selenium/wiki/JsonWireProtocol#/session/:sessionId/log

或者你可以注入一些js来验证这些元素https://code.google.com/p/selenium/wiki/JsonWireProtocol#/session/:sessionId/execute

我找不到检测背景图像加载的方法,但您可以注入隐藏的 img 并绑定其“加载”事件。但是在浏览器之间不是很可靠,见http://api.jquery.com/load-event/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多