如何使用Selenium获取网站的图标

时间:2011-12-15 15:42:39

标签: selenium selenium-webdriver webdriver

我需要获得网站的图标。

我该怎么做?

3 个答案:

答案 0 :(得分:2)

您将无法使用Selenium获取图标,您必须使用其他程序来获取它。唯一可以获得它的方法是,如果您的网站将favicon.ico呈现为

等链接
<link rel="shortcut icon"
 href="http://example.com/myicon.ico" />

然而,通常网站只将favicon.ico存储在根目录中,并且在页面请求中,浏览器会检索它并将其放在地址栏或选项卡中或使用favicons的任何位置。如果这是您的favicon的呈现方式,那么Selenium将无法搜索任何代码或任何内容。

上述代码虽然有效,但对IE7有一些错误的支持。

答案 1 :(得分:1)

这是一个有点疯狂但有效的解决方案:

  

Needle是一个使用Selenium和nose测试CSS的工具。

     

通过截取部分截图来检查CSS是否正确呈现   一个网站,并将它们与已知的好截图进行比较。它   还提供了用于测试计算的CSS值和位置的工具   HTML元素。

换句话说,我们将比较favicon图像。

示例实现(python):

from needle.cases import NeedleTestCase

class FavIconTestCase(NeedleTestCase):
    def test_so(self):
        self.driver.get('http://www.google.com/s2/favicons?domain=www.stackoverflow.com')
        self.assertScreenshot('img', 'so-favicon')

答案 2 :(得分:0)

您不需要Selenium。

只需请求网站的主页并使用HTML解析器查找<link rel="shortcut icon" href="...">代码。

如果找不到任何此类标记,请尝试/favicon.ico