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);
}
};
}
なぜ異なる動作をするのか分かりますか?