如何通过Microsoft Edge上的className进行查找?

时间:2017-12-19 11:46:20

标签: selenium microsoft-edge

我正在尝试在Microsoft Edge上运行Selenium测试,但它们似乎根本不起作用。

我在Windows 10 Build 10586.842上运行,因此我下载了Microsoft WebDriver Release 10586.也使用了Microsoft EdgeHTML 13.10586。

这里没有任何作用。 无法通过className进行简单的查找。

@FindBy(className="login-load-logo") private WebElement logo;

这是我想要找到的一行:

<img class="login-load-logo" style="transition:none; top: 29px;" src="assets/images/logo-big.svg?v=f17fe5f5040aea3652ea417726b601437456196e">

这个小例程应该等待它变得可见:

private void waitForVisibility(WebElement element) throws Error {

    try {

        new WebDriverWait(driver, 60).until(ExpectedConditions.visibilityOf(element));

    } catch (Exception e) {

        System.out.println("An error has occurred in Alloy Home Page process.");
        e.printStackTrace();

    }

}

我在这里得到一个TimeoutException,即使我可以清楚地看到屏幕上的元素。

2 个答案:

答案 0 :(得分:1)

尝试在您的方法中使用以下预期条件:

new WebDriverWait(driver, 10).until(ExpectedConditions.presenceOfElementLocated(element));  

希望它可以帮到你!

答案 1 :(得分:0)

可以尝试使用以下内容:

@FindBy(XPATH="//img[@class='login-load-logo' and contains(@src,'assets/images/logo-big.svg')]") 
private WebElement logo;

更新:

您的代码不会对您要对标识为元素WebElement执行的操作投入任何意见。接下来你试图在其上调用click() mehtod,而不是ExpectedConditions条,因为 visibilityOf() 尝试使用 elementToBeClickable(element) 如下:

new WebDriverWait(driver, 10).until(ExpectedConditions.elementToBeClickable(element));