Webdriver没有在远程IE中找到元素

jas*_*ero 4 selenium webdriver internet-explorer-8 jbehave

我对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);
            }
        };
    }
Run Code Online (Sandbox Code Playgroud)

知道为什么不同的行为?

jas*_*ero 11

我发现了这个问题,这是Internet Explorer和远程服务器的安全问题.要修复它,只需将远程服务器添加到可信站点(Tools > Options > Security Tab > Trusted Site)