我有一个目录号文本字段,其值= 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:预计[笔],但发现[] –