2016-11-16 36 views
0

我有一個目錄號文本字段,其值= Pen填充。 當我檢查DOM樹中的元素時,文本字段值是數據綁定。 如何使用Selenium Java獲取數據綁定值並驗證textfield是否爲空?Selenium Java:我如何獲得值

<input id="txtCatalogueNo" class="k-textbox" maxlength="25" data-bind="value: selectedCatalogue.CatalogueNumber"> 

感謝

回答

0

嘗試,

WebElement TxtBoxContent = driver.findElement(By.id("txtCatalogueNo")); 
System.out.println(TxtBoxContent.getAttribute("value")); 

WebElement TxtBoxContent = driver.findElement(By.id("txtCatalogueNo")); 
System.out.println(TxtBoxContent.getText()); 
+0

它不起作用。它給了我java.lang.AssertionError:預計[筆],但發現[] –

0

你可以使用getAttribute方法WebElement的任何屬性的值。

如果data-bind屬性包含值,

WebElement TxtBox = driver.findElement(By.id(txtCatalogueNo)); 
System.out.println(TxtBox.getAttribute("data-bind")); // to get the value in data-bind attribute. 

如果Value屬性包含值:

System.out.println(TxtBox.getAttribute("value")); // to get the value in data-bind attribute. 

您可以使用getText方法

System.out.println(TxtBox.getText()); // to get the text 
+0

我試過這兩種方法。我得到java.lang.AssertionError:expected [Pen],但如果使用getText()方法則找到[]。我得到了java.lang.AssertionError:expected [Pen],但是如果我使用方法getAttribute(「data-bind」),發現[value:selectedCatalogue.CatalogueNumber] –

+0

是的,那是你的預期嗎?當文本框中沒有任何值(Pen)時,您會獲得上述值。如果存在價值,那麼你會得到筆。我對麼?如果是,那麼問題已經解決了,因爲您正在獲取getText empy值,該值爲TRUE。 –

+0

對不起沒有。在文本字段中填充了值(Pen)。當我使用FireBug檢查文本字段時,Pen不顯示在DOM樹中。它是顯示數據綁定=「值:selectedCatalogue.CatalogueCatalogueNumber」>我想使用Assert.assetEquals來驗證文本字段實際填充值(筆) –

0

試試這個檢索測試:

WebElement TxtBox = driver.findElement(By.id("txtCatalogueNo")); 
String valueTxtBox=TxtBox.getAttribute("data-bind").split(":")[1].trim(); 
System.out.println(valueTxtBox); 

OR

WebElement TxtBox = driver.findElement(By.id("txtCatalogueNo")); 
String valueTxtBox=TxtBox.getAttribute("data-bind").replace("value: ", ""); 
System.out.println(valueTxtBox); 

valueTxtBox將包含你正在尋找的價值。

+0

我試過這兩種方法。它們都返回java.lang。AssertionError:預計[Pen]但發現[selectedCatalogue.CatalogueNumber] –

+0

@ B.Tang你能夠在文本框上執行sendKeys()操作嗎? –

+0

@ B.Tang它是一個KnockoutJS應用程序?如果可能的話分享網址.. –

0

對不起,這個很晚的回覆很簡單。我會假設你正在使用角度。

WebElement element= driver.findElement(By.id("txtCatalogueNo")); 
String content = (String) ((JavascriptExecutor) driver) 
     .executeScript("return arguments[0].value", element); 

希望這對你有效。