使用 Selenium WebDriver 检索 HTML 输入的值

新手上路,请多包涵

在 Web 应用程序的 HTML 中,有以下代码:

 <input type="text" name="prettyTime" id="prettyTime" class="ui-state-disabled prettyTime"  readonly="readonly">

显示时间的字符串实际上显示在页面上。

在 Selenium WebDriver 中,我有一个 WebElement 对象引用 <input> 使用:

 WebElement timeStamp = waitForElement(By.id("prettyTime"));

我想获取 WebElement 的值,换句话说,就是页面上打印的内容。我尝试了所有 WebElement 吸气剂,但没有任何东西可以检索用户看到的实际值。

原文由 jamesfzhang 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 859
2 个回答

这有点hacky,但它有效。

I used JavascriptExecutor and added a div to the HTML, and changed the text in the div to $('#prettyTime').val()

然后我使用 Selenium 检索 div 并获取它的值。测试值的正确性后,我删除了刚刚创建的div。

原文由 jamesfzhang 发布,翻译遵循 CC BY-SA 4.0 许可协议

试试 element.getAttribute("value")

text 属性用于元素标签内的文本。对于输入元素,显示的文本未被 <input> 标签包裹,而是位于 value 属性内。

注意:大小写很重要。如果您指定“值”,您将得到一个“空”值。至少对于 C# 是这样。

原文由 prestomanifesto 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题