-1

我刚开始使用 Selenium Web Driver 来测试一个网上银行交易应用程序。

我喜欢它,但有些东西让我烦恼。假设我使用以下代码访问登录屏幕:

    driver.get("https://webdev.myurl:18113/");
    WebElement element = driver.findElement(By.name("username"));
    element.sendKeys("xxxx");
    element.submit();

浏览器启动,页面加载和显示。但看起来页面尝试从外部站点加载元素,而 findElement(第 2 行)等待这些请求完成!

有没有办法绕过这种行为?

我也试过这个:

    WebElement element = (new WebDriverWait(driver, 10)).until(new  ExpectedCondition<WebElement>() {
        @Override
        public WebElement apply(WebDriver d) {
            return d.findElement(By.name("username"));
        }
    });

但这无济于事,因为这一行似乎仅在页面完全加载时才执行。

编辑:我和这里的一个人谈过。他告诉我ipinvite.iperceptions.com 不是我们的应用程序调用的。!!!事实上,当我在 FF 中加载网站时,我没有看到这个调用?!

Selenium 网络驱动程序是否调用此站点:ipinvite.iperceptions.com?

有人有同样的问题吗?

4

3 回答 3

1

您可以尝试将隐式等待时间和页面加载时间设置为 0。谷歌“selenium 隐式等待时间”和“selenium 页面加载时间”。

于 2012-05-29T19:10:28.217 回答
0

功能超时get尚未实现。创建新的 FirefoxDriver 时,构造函数中有重载,允许您指定命令超时,这是等待每个命令的最长时间。

你可以参考这篇文章的答案

于 2012-05-29T19:33:34.997 回答
-3

好的,我发现了问题。我将设置代理参数的 FirefoxProfile 的 setPreference 注释掉了。我注意到无论如何我都不需要它们。现在不再需要调用这个奇怪的 ipinvite.iperception.com 了!

感谢您花时间回复

问候

于 2012-05-29T19:46:15.553 回答