4

webdriver で奇妙な問題が発生しています。テストを実行するためのローカル環境とリモート環境があります。Firefox では両方の環境でうまく機能しますが、Internet Explorer 8 ではローカルでしか機能しません。

リモートサーバーに対してテストを実行するたびに、ログインを行うためのテキストボックス要素さえ見つかりません。要素を見つけるときに待機を使用していますが、数分まで時間を増やそうとしましたが、何もしませんでした。ソース コードを参照している IE の要素を確認できます。私はそれらの両方から生成されたhtmlを比較しましたが、同じです。

JBehave (JBehave-web-selenium-3.3.4 with selenium-ie-driver-2.0b3) を通じてセレンを使用しています

使用している要素を取得するには:

public WebElement getElementById(String elementId){
    return getMyWaiter()
    .waitForMe(By.id(elementId), TEST_DELAY_IN_S);
}

public WebElement waitForMe(By locator, int timeout) {
        WebDriverWait wait = new WebDriverWait(driver, timeout);
        return wait.until(Waiter.presenceOfElementLocated(locator));
}


public static Function<WebDriver, WebElement> presenceOfElementLocated(
            final By locator) {
        return new Function<WebDriver, WebElement>() {
            @Override
            public WebElement apply(WebDriver driver) {
                return driver.findElement(locator);
            }
        };
    }

なぜ異なる動作をするのか分かりますか?

4

2 に答える 2

11

問題が見つかりました。これは、Internet Explorer とリモート サーバーのセキュリティの問題です。これを修正するには、リモート サーバーを信頼済みサイト ( Tools > Options > Security Tab > Trusted Site)に追加するだけです。

于 2011-08-12T10:37:13.993 に答える