我在网络驱动程序方面遇到了一个奇怪的问题。我有一个本地环境和一个远程环境来执行我的测试;它们在 Firefox 的两种环境中都可以很好地工作,但对于 Internet Explorer 8,它们只能在本地工作。
每当我对远程服务器运行测试时,它甚至找不到用于登录的文本框元素。我在查找元素时使用等待,并且尝试将时间增加到几分钟,但没有任何结果。我可以在IE浏览源代码中看到该元素。我什至比较了它们生成的 html,结果是相同的。
我通过 JBehave 使用 selenium (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);
}
};
}
知道为什么会有不同的行为吗?
我发现了这个问题,这是 Internet Explorer 和远程服务器的安全问题。要修复它,只需将远程服务器添加到受信任的站点(Tools > Options > Security Tab > Trusted Site
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)