我遇到了WebDriver和IE8的一個古怪的問題,我很好奇,如果其他人以前見過這個。簡而言之,我有一個測試,它跨越一組輸入字段,輸入文本,然後點擊一個提交按鈕(其中沒有一個是在<form>
中。)它在Firefox 3.6中非常有效,如下所示:Selenium 2 C#Webdriver - 爲什麼我不能在IE8中從一個輸入移動到另一個輸入?
Driver.FindElement(By.XPath(domainXpath)).SendKeys("someDomain");
Driver.FindElement(By.XPath(emailXpath)).SendKeys("someEmailAddress");
Driver.FindElement(By.XPath(passwordXpath)).Sendkeys("somePassword");
但是當我對IE8運行這個時,Selenium似乎從未改變字段,即使它似乎通過指定的XPath正確定位它們。起初,我認爲這可能是xpath-ing的一個問題(我見過其他人有相關的問題),但是我的SendKeys沒有失敗,出現任何「找不到元素」的錯誤,而其他元素I'點擊工作正常。實際上,Selenium能夠在這個列表中找到第一個字段,並將所有三個Find的所有文本轉儲到該字段中。
所以,後來我改變了代碼只要稍微,就像這樣:
Driver.FindElement(By.XPath(domainXpath)).SendKeys("someDomain\t");
Driver.FindElement(By.XPath(emailXpath)).SendKeys("someEmailAddress\t");
Driver.FindElement(By.XPath(passwordXpath)).Sendkeys("somePassword\t");
...和,瞧,文得到了正確輸入。
就好像IE忽略了Selenium移動到下一個字段的請求,儘管該字段正在報告存在。
有沒有人遇到過這個?有沒有辦法避免爲IE編寫特殊代碼,只是爲每個數據項添加標籤?
謝謝, Greg。