4

您好我正在尝试在 IE9 上运行我的 selenium webdriver。

  • WebDriver 版本:2.32.0
  • 即:9
  • IEDriverServer_win32:2.32.3
  • Windows 7的

下面是我的代码:

File IEDriver=new File(System.getProperty("user.dir")+File.separator+"BrowserDrivers"+File.separator+"IEDriverServer.exe");
System.setProperty("webdriver.ie.driver", IEDriver.getAbsolutePath());
DesiredCapabilities cap=DesiredCapabilities.internetExplorer();
cap.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true);
WebDriver driver=new InternetExplorerDriver(cap);
driver.get("http://in00616:8421/GS");
Thread.sleep(3000);
//driver.findElement(By.id("j_username")).sendKeys("admin");
//driver.findElement(By.id("j_password")).sendKeys("admin");
driver.findElement(By.xpath(".//input[@id='j_username']")).sendKeys("admin");
driver.findElement(By.xpath(".//input[@id='j_password']")).sendKeys("admin");
driver.findElement(By.id("login")).submit();
Thread.sleep(2000);
driver.findElement(By.xpath(".//button[text()='Securities']")).click();
Thread.sleep(2000);
driver.findElement(By.xpath(".//span[text()='Issue']")).click();
Thread.sleep(2000);
driver.findElement(By.id("tabSecurities_Issue_Request_for_Issues")).click();

上面的代码登录到我的网站,但是当我尝试点击证券按钮时,我无法做到这一点。证券按钮开始闪烁,然后通知我无法找到该元素。

线程“main”中的异常 org.openqa.selenium.NoSuchElementException: Unable to find element with xpath == .//span[text()='Issue Type'] (警告:服务器没有提供任何堆栈跟踪信息)-< /p>

相同的代码在 FireFox 中运行良好。

请帮忙,因为我想在 InternetExplorer 上测试我的 UI。我认为是版本兼容性问题。任何人都可以建议IEDriverServer、Selenium WebDriver和IE的兼容版本集,它处于工作状态。

4

3 回答 3

2

正如这个 SO answer所指出的,IE 没有原生 XPath 支持。相反,Selenium WebDriver 在使用 IE 时使用旧的第三方 xpath 库。Firefox 集成了对 XPath 的支持,这就是您的选择器在该浏览器中正常工作的原因。

我强烈建议您更新选择器以改用 CSS 选择器。它们在所有浏览器中都受支持,更易于阅读、理解和上手,而且速度非常快。

您可以从这里这里这里的一些不同教程中了解更多关于如何使用 CSS 选择器的信息,以及CSS 选择器备忘单。

此外,请尽可能不要通过其包含的文本来选择元素。如果可以通过 ID、类、其他属性,甚至通过 DOM 链(即“div.1 > div.2 > span.a > ab”)选择元素,比尝试通过文本选择元素要好.

于 2013-05-22T14:43:37.393 回答
0

Webdriver 在 IE 中使用定位器有困难。Murnal 似乎很难使用 CSS 定位器。我的建议是,如果一个定位器不起作用,你必须使用其他定位器。这个问题在使用非火狐浏览器时一次又一次地出现。同时,提供备用定位器的更简单方法是使用 Firefox selenium IDE,在您键入命令的框中,您会看到它也提供备用定位器。复制它并尝试将 tha 插入 webdriver 的 findelement 脚本中。

于 2013-08-16T12:07:14.700 回答
0

大家好,我发现这是带有 IEDriver_Server2_32 的 Selenium Webdriver 2.32 的问题。在尝试了最新可用的 webdriver 版本和 IEDriver_Server 的排列和组合后,我发现在 IE9 上工作的合适的稳定配置是稳定配置:Webdriver:2.33.0 IEDriver_Server:2.33.0。仍然存在小问题,但我正在尝试寻找解决方法。问题:在 IE 中,如果某些控件的工具提示与其他控件重叠,则 IE 无法找到该控件。我想这个问题与 IE 工作有关。IE 使用 nativeEvents 执行操作,因此无法找到该控件。在 FF 中,它能够找到该控件并且工作正常。谢谢大家。

于 2013-08-23T05:55:09.870 回答