2016-06-07 22 views
1

是他們的任何方式,我們可以驗證使用硒的webdriver它的存在在Java中驗證網頁上的文本,然後獲得在硒的位置webdriver的使用Java

代碼用於檢驗後發現本網頁上的文本的位置目前沒有文字:

driver.get("http://newtours.demoaut.com/"); 

driver.getPageSource().contains("Mercury Tours!"); 
if(true) 
{ 
    System.out.println("Test Case Pass"); 
} 
else  
    System.out.println("Test Case Fail"); 

Mercury Tours!是網頁上的文本。現在如何在獲得text = true後找到位置。

我試過使用getLocation(),但失敗了。

請讓我知道這個解決方案。

+0

首先你的代碼總是以'if'結尾,因爲你沒有檢查驗證結果。至少工作代碼應該是:'<...> if(driver.getPageSource()。contains(「Mercury Tours!」))''。其次,「location」是什麼意思:coodinates(這是getLocation()返回的),dom中的位置(例如xpath)還是文本頁面中的位置(例如Java的'indexOf'返回的東西)? –

+0

你正在尋找'div' /'span'/etc。包含該文本?這是「找到位置」的意思嗎?如果不是,你是什麼意思?另外,如上所述,您需要將'.contains()'分配給一個布爾值,以便您可以正確檢查您的if。請在提問時更具體,以便我們知道您在尋找什麼。 –

回答

1

由於DOM結構的複雜性以及對元素缺乏獨特屬性,我認爲您應該使用xpath來查找帶有文本的元素。不幸的是,除非別人有更好的建議,否則這是我現在看到的唯一選擇。要求前端開發人員提供獨特的屬性,以便您可以輕鬆找到元素,而不是依賴元素的文本。

driver.get("http://newtours.demoaut.com/"); 
WebElement element = driver.findElement(By.xpath(".//font[contains(text(),'Mercury Tours')]")); 
if(element.isDisplayed()) { 
    System.out.println("Test Case Pass"); 
} else  
    System.out.println("Test Case Fail"); 
} 
相關問題