2013-07-08 57 views
0

我正在編寫一個測試,我需要將h6元素的值傳遞給字符串,以便將其放入查詢中。獲取h6的值toString

我曾嘗試以下:

WebElement trackingNumber = driver.findElement(By.xpath("/html/body/div/div/div[2]/div/div[4]/h6")); 
System.out.println(trackingNumber.getText().toString()); 

這給了我什麼都沒有。

WebElement trackingNumber = driver.findElement(By.xpath("/html/body/div/div/div[2]/div/div[4]/h6")); 
System.out.println(trackingNumber.toString()); 

這給了我gobbledygook。 [[FirefoxDriver: firefox on MAC (03665d0a-ebf8-164f-bf06-e13f4590e452)] -> xpath: /html/body/div/div/div[2]/div/div[4]/h6]

WebElement trackingNumber = driver.findElement(By.xpath("/html/body/div/div/div[2]/div/div[4]/h6")); 
System.out.println(trackingNumber.getAttribute("value")); 

這將返回null

當我運行測試我知道我要找的價值是存在的,只是想知道爲什麼我收到一個null值。

+0

我不認爲'/ HTML /體/ DIV/DIV/DIV [2]/DIV/DIV [4]/h6'識別你認爲它的節點標識。使用Firebug確認XPath是否正確。 –

+0

是的跟蹤號碼顯示,是XPath是正確的。我目前似乎無法將打印出來的價值打印到我的控制檯,但我希望確保已將其打印到控制檯,然後再嘗試將其投入查詢。 – DarthOpto

+0

你確定html文件格式正確嗎?它是XHTML嗎?或HTML? – 2013-07-08 22:01:24

回答

1

試試這個:

System.out.println(trackingNumber.getAttribute("textContent")); 

然而,這種行爲應該相同與getText(),所以我懷疑,如果這是要去工作。

也可以嘗試改變你的定位:

WebElement trackingNumber = driver.findElement(By.xpath("//h6[@class='tracking-number muted']")); 
System.out.println(trackingNumber.getText()); 
+0

'System.out.println(trackingNumber.getAttribute(「textContent」));'工作得很好,非常感謝。 – DarthOpto

1

嘗試使用此代碼:

WebElement trackingNumber = driver.findElement(By.xpath("/html/body/div/div/div[2]/div/div[4]/h6")); 
System.out.println(trackingNumber.getText()); 

沒有必要添加 「的toString()」,因爲GetText返回字符串值了。

+0

我試過了,它什麼也沒有返回。 – DarthOpto