我有一個目錄號文本字段,其值= Pen填充。 當我檢查DOM樹中的元素時,文本字段值是數據綁定。 如何使用Selenium Java獲取數據綁定值並驗證textfield是否爲空?Selenium Java:我如何獲得值
<input id="txtCatalogueNo" class="k-textbox" maxlength="25" data-bind="value: selectedCatalogue.CatalogueNumber">
感謝
我有一個目錄號文本字段,其值= Pen填充。 當我檢查DOM樹中的元素時,文本字段值是數據綁定。 如何使用Selenium Java獲取數據綁定值並驗證textfield是否爲空?Selenium Java:我如何獲得值
<input id="txtCatalogueNo" class="k-textbox" maxlength="25" data-bind="value: selectedCatalogue.CatalogueNumber">
感謝
嘗試,
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());
你可以使用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
我試過這兩種方法。我得到java.lang.AssertionError:expected [Pen],但如果使用getText()方法則找到[]。我得到了java.lang.AssertionError:expected [Pen],但是如果我使用方法getAttribute(「data-bind」),發現[value:selectedCatalogue.CatalogueNumber] –
是的,那是你的預期嗎?當文本框中沒有任何值(Pen)時,您會獲得上述值。如果存在價值,那麼你會得到筆。我對麼?如果是,那麼問題已經解決了,因爲您正在獲取getText empy值,該值爲TRUE。 –
對不起沒有。在文本字段中填充了值(Pen)。當我使用FireBug檢查文本字段時,Pen不顯示在DOM樹中。它是顯示數據綁定=「值:selectedCatalogue.CatalogueCatalogueNumber」>我想使用Assert.assetEquals來驗證文本字段實際填充值(筆) –
試試這個檢索測試:
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
將包含你正在尋找的價值。
我試過這兩種方法。它們都返回java.lang。AssertionError:預計[Pen]但發現[selectedCatalogue.CatalogueNumber] –
@ B.Tang你能夠在文本框上執行sendKeys()操作嗎? –
@ B.Tang它是一個KnockoutJS應用程序?如果可能的話分享網址.. –
對不起,這個很晚的回覆很簡單。我會假設你正在使用角度。
WebElement element= driver.findElement(By.id("txtCatalogueNo"));
String content = (String) ((JavascriptExecutor) driver)
.executeScript("return arguments[0].value", element);
希望這對你有效。
它不起作用。它給了我java.lang.AssertionError:預計[筆],但發現[] –