如何验证输入元素中是否包含任何文本。它加载了随机文本,因此我无法验证特定值,但其中肯定有一些文本。 我正在使用 Selenium IDE
在 Selenium IDE 中,您可以使用
verifyEval
命令和一些 JavaScript 来验证字段是否已填充。
Command: verifyEval
Target: this.page().findElement("//input[@id='email']").value != ''
Value: true
在本例中,我正在测试
<input type="email" id="email" value='[email protected]">
是否不是 HTML 页面上的空字段。
运行此命令时,将评估目标中的 JavaScript 代码。这里它正在针对空字符串测试电子邮件字段的当前值。如果它们不匹配(例如该字段不为空),则返回
true
。然后将此返回值与预期的 Value
进行比较,这也是正确的,因此测试通过。
我只是用
verifyNotValue|//input[@id='email']|
第三个参数为空
如果您将 Selenium-RC 与任何编程语言一起使用,这应该是小菜一碟。但是,鉴于您正在使用 IDE,我建议添加 this 用户扩展。这将为您提供一些循环结构。您可以使用
storeText
,然后根据存储检索到的文本的变量的值做出决定。 Stored Vars 是另一个有用的 IDE firefox 扩展,用于分析 storeText
变量的内容。
试试这个:
driver.find_element_by_id("email").get_attribute("value") != ''
这是注册表单断言的一部分。 FirstName 字段已提供数据。然后我使用以下代码来验证该字段是否已填充数据。
if(driver.findElement(By.cssSelector("#FirstName")).getText()==""){
System.out.println("field didn't fillup with data");
}
else {
System.out.println("field filled up with data");
}
这是 12 年后的事了,但我遇到了同样的问题,但找不到答案,所以我用稍微更暴力的方式做到了,因为似乎没有一个命令可以提供优雅的解决方案。这是适用于 Selenium IDE 4.0.1-alpha.78
这是一个 4 命令解决方案,但它有效。
格式为(命令 ---> 目标 ---> 值)
1. 执行脚本 ---> return $('selector').get(0).value != '' ---> valExists 2. 如果 ---> !${valExists} 3.断言--->您的错误消息将停止测试执行 4.结束
我确信这适用于任何您需要值的东西,但您不关心该值是什么。在我的脚本中,我在执行脚本后也有一个回显来获取结果。
希望这可以帮助未来的人们。