2012-03-23 13 views
1

我是新來的Selenium,並且遇到了Internet Explorer 9(IE9)中的測試用例問題。我正在使用NUnit來運行測試用例來驗證特定圖像是否存在於特定位置。測試用例通過Firefox和Chrome,但在IE9中失敗。Selenium Xpath問題在特定位置驗證特定映像 - Internet Explorer 9(IE9)

我聽說IE瀏覽器與Xpath有問題,但無法找到關於該主題的任何明確信息。有沒有什麼辦法讓這個命令在IE中使用Xpath?有沒有更好的方法可以在沒有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

如何告訴我們問題是什麼? – 2012-03-24 01:53:45

回答

1

最佳猜測:IE正在將SRC=屬性標準化爲圖像的完全限定URL。嘗試將img[src="...']替換爲img[contains(@src, '...'],這應該與相對或絕對URL一致。

+0

這樣做。感謝您的幫助Ross。真的很感激它。 – 2012-03-26 20:32:20

0

羅斯帕特森說。

此外,XPath的路徑可以只是錯誤 - 在所述結構的任何單個或錯字變化可能對這樣的XPath表達式是致命的。嘗試只是

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

它搜索任何圖像包含給定的src。如果在頁面上有更多的這些圖像,這不是一個選項(或者它將不得不被更多修改),但是如果只有這個圖像,它會找到它。

+1

感謝您輸入Petr。我也會記住你的命令。不指定Xpath路徑聽起來也是一個好主意。 – 2012-03-26 20:32:30