点击不适用于InternetExplorerDriver Selenium

时间:2012-10-23 07:27:20

标签: selenium webforms postback

我正在为ASP .NET Webforms应用程序开发大量测试。要做到这一点,我正在使用Selenium和InternetExplorerDriver。

但是,我有一个我无法解决的问题。有时,当我调用元素的“click”方法时,单击不起作用。在Internet Explorer中,按钮看起来像被单击,但是在应用程序中不会触发click事件。你有好主意吗 ?

最后一个问题:在Selenium完成回发后你怎么知道? WebForms和UpdatePanel使用回发来刷新内容。所以,我无法验证一个特定元素的存在......

Thanx为你的答案!

PS:我正在使用IE 9 / IE 10和Selenium For .NET 2.25.1

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

希望这可以帮助你