Java是使用特定标记

时间:2016-02-13 04:06:40

标签: java c# selenium selenium-webdriver

我正在努力使用C#中的一段代码,我不知道如何更改为Java:

这是调用方法:

Assert.Istrue(DashboardPage.IsAt, "Failed to login);"

这是具有该功能的Dashboard类。这是我想要转换为Java的C#:

public class DashboardPage {

    public static bool isAt {
        get {
            var h2 = Driver.driver().FindElements(By.TagName("h2"));
            if (h2.Count>0)
                return h2[0].Text =="Dashboard";
            return false;
        }
    }           
}           

因为我无法在Java中创建上述功能,所以我做了如下的替代方法。但是你可以看到这会检查整个页面源而不是特定标签。

public static boolean isTextPresent(String text) {
    try {
        boolean b = Driver.driver().getPageSource().contains(text);
        return b;
    }
    catch (Exception e) {
        return false;
    }
}

1 个答案:

答案 0 :(得分:0)

我猜您的代码应该有点像这样:

public static boolean isTextPresent(WebDriver driver,String text){
try{
    boolean b = driver.findElement(By.tagName("h2")).getText().contains(text);
    return b;
}
catch(Exception e){
    return false;
}
}

上面的示例将在DOM中找到第一个可用的h2标记。 如果要检查所有h2标记的文本,则应使用findElements()

List<WebElement> tags = driver.findElements(By.tagName("h2"));
for(WebElement e:tags){
    if(e.getText().contains(text))
    return true;
}

请注意,这里我将WebDriver作为附加参数传递,并假设您已经在要调用的类中声明并定义了WebDriver(类似于WebDriver driver=new FirefoxDriver())。这将允许该函数使用相同的实例。

另外,我在这里使用了contains(),这将检查子字符串。如果您想要完全匹配,请使用equals()