2011-03-18 33 views
2

我使用Selenium 2.0 Web驅動程序來嘗試登錄頁面。下面的代碼適用於Firefox webdriver,它可以找到這些字段,填充它們並單擊按鈕。Selenium 2.0&IE9

driver.FindElement(By.Id("UserName")).SendKeys("name"); 
driver.FindElement(By.Id("Password")).SendKeys("test"); 
driver.FindElement(By.Id("btnLogin")).Click(); 

但是,每當我嘗試使用Internet Explorer Web驅動程序它說它無法找到id == UserName的元素。我嘗試使用By.Name和By.Xpath以及有效的輸入,但我仍然得到相同的錯誤,說它無法找到元素。我使用IE 9,所以我知道這可能是一個兼容性問題,但我似乎無法找到任何帖子或信息說有一個已知的問題。

我只是想看看是否有其他人遇到同樣的問題,或者如果有什麼我沒有正確地做,導致我的問題。另外,這是一個C#.NET項目。

- 編輯 -

顯然,這是IE9的問題,我刪除9,回到8和測試工作。我仍然有興趣知道是否有人發現爲什麼會發生這種情況,或者是否有解決辦法。

回答

2

硒(2.0b2)的當前版本不支持IE9,但是2.0b3應該很快被釋放,並支持IE9和Firefox 4

+1

2.0b3今天已經發布了與IE9和Firefox 4支持:http://seleniumhq.wordpress.com/2011/03/21/selenium-2-0b3-the-next -gen瀏覽器釋放/ – 2011-03-21 21:25:57

0

answer也可能是相關的獲得的點擊任何人遇到的問題'用IE9開火。

解決此問題的方法是在嘗試點擊鏈接之前,將.Click()發送到頁面上的另一個元素,以便瀏覽器獲得焦點。它的父:

driver.FindElement(By.Id("Logout")).FindElement(By.XPath("..")).Click(); 
driver.FindElement(By.Id("Logout")).Click();