我正在使用Selenium 2.0网络驱动程序尝试登录页面。以下代码适用于Firefox webdriver,它可以找到字段,填充它们并单击按钮。
driver.FindElement(By.Id("UserName")).SendKeys("name");
driver.FindElement(By.Id("Password")).SendKeys("test");
driver.FindElement(By.Id("btnLogin")).Click();
但是,每当我尝试使用Internet Explorer webdriver时,它都说无法找到id == UserName的元素。我尝试使用By.Name和By.Xpath以及有效输入,但我仍然得到相同的错误,说它找不到元素。我正在使用IE 9,所以我知道它可能是一个兼容性问题,但我似乎无法找到任何帖子或信息说有一个已知的问题。
我只是想看看是否有其他人遇到了同样的问题,或者是否有一些我做得不正确导致我的问题。此外,这是一个C#.NET项目。
- 编辑 -
显然这是IE9的一个问题,我删除了9并返回到8并且测试正常。我仍然有兴趣知道是否有人发现为什么会发生这种情况或是否有解决方法。
答案 0 :(得分:2)
目前发布的Selenium(2.0b2)不支持IE9,但2.0b3应尽快发布并支持IE9和Firefox 4.
答案 1 :(得分:0)
此answer也可能与任何遇到使用IE9触发“点击”问题的人有关。
对此的解决方法是将.Click()发送到页面上的另一个元素,以便在尝试单击链接之前浏览器获得焦点,例如这是父母:
driver.FindElement(By.Id("Logout")).FindElement(By.XPath("..")).Click();
driver.FindElement(By.Id("Logout")).Click();