在Internet Explorer中运行selenium的问题

嗨,我想在IE9上运行我的selenium webdriver.

> WebDriver版本:2.32.0
> IE:9
> IEDriverServer_win32:2.32.3
> windows7

以下是我的代码:

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();

上面的代码登录到我的网站,但是当我尝试点击“证券”按钮时,我无法执行此操作.证券按钮开始闪烁,然后通知我无法找到该元素.

Exception in thread “main” org.openqa.selenium.NoSuchElementException:
Unable to find element with xpath == .//span[text()=’Issue Type’]
(WARNING: The server did not provide any stacktrace information) –

相同的代码在FireFox中工作正常.

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

最佳答案 正如
this SO answer指出的那样,IE没有本机XPath支持.相反,Selenium WebDriver在使用IE时使用旧的第三方xpath库. Firefox集成了对XPath的支持,这就是您的选择器在该浏览器中正常工作的原因.

我强烈建议您更新选择器而不是使用CSS选择器.它们在所有浏览器中都受支持,更易于阅读,理解和提取,而且速度非常快.

您可以从一些不同的tuturials here,herehere以及CSS selectors cheatsheet中了解有关如何使用CSS选择器的更多信息.

此外,只要有可能,请尝试不按其包含的文本选择元素.如果您可以通过其ID,类,其他属性或甚至通过DOM链(即“div.1> div.2> span.a> ab”)选择元素,那么优于尝试选择元素元素的文字.

点赞