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和被测试应用程序之间的兼容性问题(或编码错误)。我仍然把它整理出来,很快就会有更多的细节,但现在,这个问题似乎回答了。
对不起,混乱的小河...... [尴尬]