2012-03-23 12 views
1

私はSeleniumを初めて使い、Internet Explorer 9(IE9)でテストケースの問題を発見しました。私は特定のイメージが特定の場所に存在することを確認するためにテストケースを実行するのにNUnitを使用しています。テストケースはFirefoxとChromeで動作しますが、IE9では失敗します。特定の場所で特定のイメージを確認するSelenium Xpathの問題 - Internet Explorer 9(IE9)

IEにはXpathに関する問題があると聞いていますが、その件に関する決定的な情報は見つかりませんでした。 Xpathを使ってIEでこのコマンドを動作させる方法はありますか? Xpathなしでこの検証を実行するより良い方法はありますか?該当する情報は以下の通りです。

注:私はC#も新しく、C#の問題でもあります。

コマンド=

Assert.IsTrue(selenium.IsElementPresent("//html/body/form/div[8]/div[3]/div[3]/div[2]/div/div/table/tbody/tr/td/img[@src='images/4a00ac39-be42-46e0-8bd4-5cc786197357.jpg']")); 

画像のHTML =

<img style="padding-top: 3px; padding-bottom: 0px; background-color: transparent;" src="images/4a00ac39-be42-46e0-8bd4-5cc786197357.jpg"> 

画像のCSSパス=

html body.v4master form#aspnetForm div#s4-workspace div#s4-mainarea.s4-pr div#MSO_ContentTable.s4-ca div.s4-ba div.ms-bodyareacell div#ctl00_MSO_ContentDiv table.maintable tbody tr td img 

Addtionally、コマンドの動作とテストケース特定の画像検証部分をドロップするとIE9に入ります:

Assert.IsTrue(selenium.IsElementPresent("//html/body/form/div[8]/div[3]/div[3]/div[2]/div/div/table/tbody/tr/td/img")); 
+0

問題の原因を教えてください。 –

答えて

1

ベスト推測:IEはSRC=属性を画像の完全修飾URLに正規化しています。 img[src="...']img[contains(@src, '...']に置き換えてください。これは、相対URLまたは絶対URLと同様に機能するはずです。

+0

それはそうしました。助けてくれてありがとうRoss。心から感謝する。 –

0

ロス・パターソンが言ったこと。

また、XPathパスは間違っている可能性があります。構造内の単一の入力ミスや変更は、そのようなxp​​ath式では致命的になる可能性があります。試してみてください

//img[contains(@src,'images/4a00ac39-be42-46e0-8bd4-5cc786197357.jpg')] 

与えられたsrcを含む画像を検索します。あなたがこれらのイメージをページ上にもっと持っているなら、これはオプションではありません(あるいはもっと修正する必要があります)が、もしこれだけあればそれを見つけるでしょう。

+1

入力していただきありがとうございます。私はあなたの命令を念頭に置いておきます。 Xpathパスを指定しないと、良いアイデアのように聞こえます。 –

関連する問題