0

我正在使用
Selenium 独立服务器 - 2.25.0
IE - 8.0.6001.18702(32 位)
IEDriverServer - 2.25.1.0
Java - SDK6
OS - Win Xp 32 位

代码:

    System.setProperty("webdriver.ie.driver", "Path to IEDriverServer.exe");
    driver.get("http://www.naukri.com/");
     // Used Wait before entering text.
    driver.findElement(By.id("qp")).clear();
    driver.findElement(By.id("qp")).sendKeys("java j2ee");
    driver.findElement(By.id("ql")).clear();
    driver.findElement(By.id("ql")).sendKeys("chennai");
    driver.findElement(By.linkText("Create a new Job Alert")).click();

我使用上面的代码来启动 IE8。我能够在 IE 中成功启动并打开应用程序。但是,之后我无法在打开的网页上执行任何操作。

  1. 我将 IE 保护模式设置为所有四个高级别的。
  2. 设置 IEDriverServer.exe 的路径
  3. 将浏览器缩放级别设置为 100%

我做了以上所有,我阅读了很多论坛,但我没有得到答案。

我使用相同的代码并在另一台机器上运行。它在那里工作得很好。第二台机器配置是

Selenium 独立服务器 - 2.25.0
IE - 8.0.7601.17514(64 位)
IEDriverServer - 2.25.1.0
Java - SDK7
操作系统 - Win 7 专业版

我不知道确切的问题是什么?我试图找到根本原因,但我没有。
请帮我解决问题。
提前致谢...

4

2 回答 2

1

有很多事情要考虑:

更新 Selenium,它是v2.28

切换到使用ChromeFirefox驱动程序,以查看是否存在 IEDriver 或其他问题。

您也误解了 IE 的“保护模式”的含义。您正在破坏安全区域,这是不同的。

参考这张图片:

http://www.ivertech.com/images/internetExplorer7/IE7UncheckEnableProtectedModeCheckBox.gif

每个区域都有自己的保护模式设置。取消选中所有区域。

如果你没有那个复选框,有两件事:它可能被你的 IT 管理员禁用,如果你有一个,因此我们无能为力 - 你必须与你的 IT 团队交谈,截图显示你有什么

而不是使用隐式超时,实际上将其包装在一个WebDriverWait条件中:

http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/support/ui/WebDriverWait.html

如果它在合理的超时(1 分钟)后失败,那么我们知道还有其他问题。不要使用隐式等待函数。

还可以看看你是否可以通过不同的方式访问元素,例如使用这个 CSS 选择器:

input.w327
于 2013-01-21T09:45:15.587 回答
0

根据您收到的错误消息,您是在页面完全加载之前在字段中输入值。您使用的等待时间足以加载页面。用这个

driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);

或者

增加等待时间。如果您使用的是 Thread.sleep(10000); 在您的代码中,然后将其增加到 Thread.sleep(20000); 它会起作用的。

于 2013-01-18T11:46:15.723 回答