2016-11-16 35 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); 

希望这对你有效。