Selenium:不能将SendKeys()发送到可见窗口下方但通过Click()可见的项目

时间:2013-05-09 16:59:19

标签: selenium selenium-webdriver

我遇到了SendKeys时文本字段可见的问题。我正在使用IEDriverServer.exe和C#。

以下是我可以重现问题的方法:

有问题的文字字段在窗口中可见,但您必须向下滚动才能看到它。要向下滚动,我使用以下代码单击元素:

var element = driver.FindElement(By.Xpath("…"));
element.Click();

这会向下滚动窗口并使文本字段可见。

但是当我尝试将文本发送到现在可见的窗口时:

element.SendKeys("blah");

我得到例外:

  

When_applicant_enters_application.Should_be_instantly_approved_on_external引发异常:OpenQA.Selenium.ElementNotVisibleException:元素未显示

如何修复或解决此问题?

Selenium版本:2.32.1 操作系统:Windows 7 浏览器:IE 浏览器版本:9.0.15

1 个答案:

答案 0 :(得分:1)

我编写了代码来证明问题并将其提交给Selenium技术支持志愿者。

完整的讨论发布在http://code.google.com/p/selenium/issues/detail?id=5620 但带回家的是:

// Doesn't work
// driver = new InternetExplorerDriver();
// driver.Navigate().GoToUrl(@"D:\CGY\selenium\Bug5620\Bug5620\Bug5620.htm");

// Works
// driver = new FirefoxDriver();
// driver.Navigate().GoToUrl(@"D:\CGY\selenium\Bug5620\Bug5620\Bug5620.htm");

// Works
driver = new InternetExplorerDriver();
driver.Navigate().GoToUrl(@"http://localhost:8080/Bug5620/"); // Hosted on Tomcat

所以可能存在可能涉及IE,IE安全设置,Visual Studio本地服务器和/或IE驱动程序的问题。这可能不是代码问题,但需要记录,因为其他人显然遇到了问题。

我不知道问题究竟在哪里,但我现在有一个解决方法,就是使用Firefox驱动程序。

谢谢你的帮助,吉姆。如果您找到了解决问题的更好方法,请在此处为其他人添加答案。