2016-02-13 80 views
0

我在C#中的一段代码,我不知道怎么改到Java奋力页面中的C#查找文本替代:Java的使用特定标签

这是调用方法:

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

这是仪表板类的功能。这是我想转换成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中的上述功能,我做了一个选择,因为below.But你可以看到这个检查整个页面的源代码,而不是特定的标签。

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

回答

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())。这将允许该功能使用相同的实例。

而且,我已经使用这里,这将检查子。如果您想要完全匹配,请改用equals()

相关问题