Selenium 2 C#Webdriver - 为什么我不能在IE8中从一个输入移动到另一个输入?

问题描述:

我遇到了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。

实际上,这个问题似乎是IE8和被测试应用程序之间的兼容性问题(或编码错误)。我仍然把它整理出来,很快就会有更多的细节,但现在,这个问题似乎回答了。

对不起,混乱的小河...... [尴尬]