1

我正在为 ASP .NET Webforms 应用程序开发大量测试。为此,我将 Selenium 与 InternetExplorerDriver 一起使用。

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

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

感谢您的回答!

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

4

1 回答 1

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 的详细信息,您可以在这里获取

所以假设你有元素应该被改变,例如下面的xPath:

String xPathElement ="blablabla";

fluentWait(By.xpath(xPathElement)).sendKeys("\n");

希望这对你有帮助

于 2012-10-23T10:50:15.413 回答