我对 webdriver 有一个奇怪的问题。我有一个本地环境和一个远程环境来执行我的测试;它们在两种环境中的 Firefox 中都运行良好,但在 Internet Explorer 8 中,它们只能在本地运行。
每当我对远程服务器运行测试时,它甚至都找不到用于登录的文本框元素。我在查找元素时使用了等待,我试图将时间增加到几分钟,但没有。我可以在 IE 浏览源代码时看到该元素。我什至比较了它们生成的 html 并且是相同的。
我通过 JBehave 使用硒(JBehave-web-selenium-3.3.4 和 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);
}
};
}
知道为什么会有不同的行为吗?