如何验证在搜索框中输入某些文本时占位符文本是否消失

时间:2014-03-25 11:11:37

标签: selenium selenium-webdriver

我有一个场景,我必须验证两件事: a)占位符文本 b)占位符文本在输入某些文本时消失。

我使用getAttribute完成了方案1("占位符");

对于方案b)即使在输入文本后我仍然被卡住,占位符值保持不变。 我甚至尝试过getText(),但在两种情况下它都显示为空值。

还有其他方法吗?

编辑:HTML 在输入文字之前:

<div class="pull-left"> <div class="form-group"> <input id="edit-search-block-form" class="form-control" type="text" name="keys" placeholder="How can we help you?"/>

它保持不变

</div> <button class="btn btn-primary" name="op" type="submit">Search</button> </div> 

输入文字后

<div class="pull-left"> <div class="form-group"> <input id="edit-search-block-form" class="form-control" type="text" name="keys" placeholder="How can we help you?"/> </div> <button class="btn btn-primary" name="op" type="submit">Search</button> </div>

1 个答案:

答案 0 :(得分:2)

我相信输入标记的属性,&#39;占位符&#39;即使在输入字段中输入文本后,HTML代码中的所有其他属性也将保持不变。您希望HTML代码如何动态更改,除非您正在进行AJAX调用或者在执行表单提交后重新加载页面。

&#34;值&#34;属性是一个改变的(虽然它不会反映在HTML代码中)。我认为getText返回空白,因为它确实不知道如何处理属性占位符

请尝试以下代码: -

WebElement input = driver.findElement(By.id("edit-search-block-form"));

System.out.println("placeholder-before : " + input.getAttribute("placeholder"));
System.out.println("value-before : " + input.getAttribute("value"));

input.sendKeys("New text goes here");

System.out.println("placeholder-after : " + input.getAttribute("placeholder"));
System.out.println("value-after : " + input.getAttribute("value"));

如果这有助于您,请告诉我。