2

我正在使用 Selenium 2.0 Web 驱动程序尝试登录页面。以下代码可以很好地与 Firefox 网络驱动程序一起使用,它会找到字段,填写它们并单击按钮。

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

但是,每当我尝试使用 Internet Explorer 网络驱动程序时,它都会说无法找到 id == UserName 的元素。我尝试使用 By.Name 和 By.Xpath 以及有效输入,但我仍然收到相同的错误,说它找不到元素。我使用的是 IE 9,所以我知道这可能是一个兼容性问题,但是我似乎找不到任何帖子或信息表明存在已知问题。

我只是想看看其他人是否遇到了同样的问题,或者是否有什么我做的不正确导致了我的问题。此外,这是一个 C# .NET 项目。

- 编辑 -

显然这是 IE9 的问题,我删除了 9 并返回到 8 并且测试工作正常。我仍然很想知道是否有人知道为什么会发生这种情况,或者是否有解决方法。

4

2 回答 2

2

当前版本的 Selenium (2.0b2) 不支持 IE9,但是 2.0b3 应该很快就会发布并且同时支持 IE9 和 Firefox 4。

于 2011-03-19T00:11:45.207 回答
0

这个答案也可能与任何遇到使用 IE9 触发“点击”问题的人相关。

解决方法是在尝试单击链接之前将 .Click() 发送到页面上的另一个元素,以便浏览器获得焦点,例如它的父级:

driver.FindElement(By.Id("Logout")).FindElement(By.XPath("..")).Click();
driver.FindElement(By.Id("Logout")).Click();
于 2012-01-19T18:31:48.920 回答