3

現在のページに正しいタイトルアイコンが表示されているかどうかを確認する必要があります。私たちは、あなたがサイト上のどこにいるかに応じてアイコンを変更し、チェックする必要があります。Robot Framework - Selenium2library - ページのファビコンを確認

私は、我々が使用するHTMLがある

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

を試してみました..

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

キーワードは動作しませんでした私が使用する必要が何か他のものはありますか?またはこの種のテストを行うためにセレンでサポートされていないのですか?

+1

あなたは[取得要素の属性](httpで 'href'属性の値を取得しようとしています//robotframework.org/Selenium2Library/Selenium2Library.html#Get%20Element%20Attribute)? –

+0

ページ内に表示されていないもののロケータを取得するにはどうすればよいですか?ブラウザのタブに表示されます。 – Goralight

+0

私は分かりません。私はそれがあなたが把握しようとしているものかどうかを単に尋ねています。 –

答えて

0

それを実演しました。 私は基本的に問題のリンクタグのhrefをつかみ、 "文字列と同じであるべき"キーワードを使ってそれらを比較します。私は早くそれを解決しただろうが、アイコンリンクタグは最初のリンクタグではなかった。私が使用した線は以下の通りです。

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

正しい方向に私を押しつけるためにブライアンオークリーに感謝します。いくつかのサイトはまだrel="shortcut icon"(上記のWikipediaのリンクで詳細を)使用しても

+0

2つの理由からそうしないでください。最初に、おそらく第2リンク要素が必要でしたが、それは将来のバージョンやビルドで簡単に変更できます。第二に、xpathでは、索引付けは関係よりも優先順位が高いため、ロケータは実際には「親の2番目の子であるリンクを取得します」(最初は直感的ではありませんが、本当にあります。 – Todor

1

According to the currently applied standards、ファビコンを設定するための正しい方法は、rel="icon"属性を持つ、リンクタグを使用することです。このXPathは、両方をカバー:

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

その値を取得するには、通常のrobotframeworkのアプローチを使用します:

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

私はXpathを本当に理解する前に、この質問の方法を尋ねて答えました - 私は同意します - 私の反応は非常に直感的ではありません;)。私はFaviconが入っているLinkを探し、それを予想されたリンクと比較すると言っていたと思います。あなたの応答はより明確で、私の応答よりも理にかなっています。 – Goralight

+0

@Goralightを支援してうれしいです。 Btw、あなたの解決策では、私はさらに、 "同じでなければならない"のではなく、含まなければならないことを示唆し、ホスト名の後ろのパスを探します - "/bin/icons/1.ico";したがって、このケースは他の環境/展開にも適用されます。 – Todor

関連する問題