我正在努力使用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;
}
}
答案 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()
。