【问题标题】:Robot Framework - Selenium2library - Check the Favicon of the pageRobot Framework - Selenium2library - 检查页面的 Favicon
【发布时间】:2017-04-15 23:47:07
【问题描述】:

我需要查看当前页面是否显示正确的标题图标。我们会根据您在网站上的位置更改图标,并需要对其进行检查。

我试过了

Page Should Contain Image    /bin/icons/1.ico

我们使用的 HTML 是:

<link rel="shortcut icon" type="image/x-icon" href="/bin/icons/1.ico"/>

关键字不起作用..还有什么我必须使用的吗?还是 selenium 不支持做这种测试?

【问题讨论】:

  • 你试过用Get Element Attribute获取href属性的值吗?
  • 如何获取页面中未显示的内容的定位器?它正在浏览器选项卡上显示。
  • 我不知道。我只是想问你是否试图弄清楚。
  • 现在想弄清楚 - 好建议
  • 所以 - 在考虑了它并查看了文档之后 - 我使用了这个: ${test} = get element attribute tag=link@href 但是,favicon 不是第一个链接。这是第二个。有没有办法选择第二个?类似于 xpath?

标签: selenium selenium-webdriver automated-tests robotframework selenium2library


【解决方案1】:

According to the currently applied standards,设置网站图标的正确方法是通过具有rel="icon" 属性的链接标签,尽管有些网站仍然使用rel="shortcut icon"(更多详细信息在上面的维基百科链接中)。这个 xpath 涵盖了两者:

${loc}=    xpath=//link[@rel="link" or @rel="shortcut icon"]

要获取它的值,请使用普通的机器人框架方法:

${favicon}=    Get Element Attribute     ${loc}@href

【讨论】:

  • 在我真正理解 Xpath 之前,我问并回答了这个问题 - 我同意 - 我的回答非常......不直观;)。我想我想说的是寻找包含 Favicon 的链接并将其与预期的链接进行比较。你的回答比我的回答更清楚、更有意义。
  • 很高兴帮助@Goralight。顺便说一句,在您的解决方案中,我进一步建议不要选择“应该相等”,而是 - 应该包含并在主机名之后查找路径 - “/bin/icons/1.ico”;因此该案例将适用于其他环境/部署。
【解决方案2】:

想通了。 我基本上抓住了有问题的链接标签的href,然后使用“应该等于字符串”关键字来比较它们。我会早点解决它,但图标链接标签不是第一个链接标签。以下是我使用的行:

${Favicon1} =   Get Element Attribute    //link[2]@href
Should Be Equal As Strings    ${Favicon1}    http://localhost:8080/bin/icons/1.ico

非常感谢 Bryan Oakley 将我推向正确的方向。

【讨论】:

  • 不要那样做,有两个原因。首先-您可能想要第二个链接元素-但这可以在将来的版本或构建中轻松更改。其次,在 xpath 中,索引的优先级高于关系,因此定位器实际上读取“获取任何链接,它是其父级的第二个孩子”(相信我,虽然一开始不直观,但确实如此:)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-02-17
  • 2014-09-11
  • 2015-08-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-06
相关资源
最近更新 更多