我正在为ASP .NET Webforms应用程序开发大量测试。要做到这一点,我正在使用Selenium和InternetExplorerDriver。
但是,我有一个我无法解决的问题。有时,当我调用元素的“click”方法时,单击不起作用。在Internet Explorer中,按钮看起来像被单击,但是在应用程序中不会触发click事件。你有好主意吗 ?
最后一个问题:在Selenium完成回发后你怎么知道? WebForms和UpdatePanel使用回发来刷新内容。所以,我无法验证一个特定元素的存在......
Thanx为你的答案!
PS:我正在使用IE 9 / IE 10和Selenium For .NET 2.25.1
答案 0 :(得分:0)
我通过以下方式解决了这个问题:
driver.findElement(By locator).sendKeys("\n");
与可能已被更改的元素进行交互尝试fluentWait:
public WebElement fluentWait(final By locator){
Wait<WebDriver> wait = new FluentWait<WebDriver>(driver)
.withTimeout(30, TimeUnit.SECONDS)
.pollingEvery(5, TimeUnit.SECONDS)
.ignoring(org.openqa.selenium.NoSuchElementException.class);
WebElement foo = wait.until(
new Function<WebDriver, WebElement>() {
public WebElement apply(WebDriver driver) {
return driver.findElement(locator);
}
}
);
return foo; } ;
有关fluentWait的详细信息,您可以获得here
所以假设你有一个元素应该用例如关注xPath:
String xPathElement ="blablabla";
fluentWait(By.xpath(xPathElement)).sendKeys("\n");
希望这可以帮助你