2016-02-13 81 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()

相關問題