与HTML中未显示的只读文本框关联的文本

时间:2014-04-25 11:13:37

标签: html selenium-webdriver webdriver

我遇到了一个基础页面的情况HTML不包含readonly文本框中包含的值。在浏览器中,文本框显示包含文本“A504Y”。

我使用Webdriver查找与文本框关联的文本。当然,我的第一种方法是使用.text方法读取与文本框关联的文本:

string text = Web.Browser.FindElement(By.Id(ProductVariantCodeId)).Text;

但是,这不起作用,返回的文本字符串为空值。

检查元素(使用Chrome)显示要由以下代码定义的元素:

<input id="ProductVariantCode" type="text" data-bind="value: ProductVariantCode, attr: {placeholder: ProductVariantCodePlaceHolder}, inputValidation: { }" disabled="disabled" class="disabled" placeholder="Auto Generated" >

请注意,文本“A504Y”未出现在代码中,这可以解释为什么Webdriver无法看到它。但是我的同事建议使用以下Webdriver代码来查找值:

string text = Web.Browser.FindElement(By.Id(ProductVariantCodeId)).GetAttribute("value");

这很有用。

我不确定为什么在检查时显示的HTML中不存在'A504Y'文本。如果有人可以解释这一点,请解释一下。谢谢。

2 个答案:

答案 0 :(得分:0)

.Text属性引用html元素的innerText。 GetAttribute(“value”)获得了文本框中实际包含的文本。 “Value”定义了GetAttribute方法的访问权限。

我猜你在使用C#? api文档可能值得一看,以备将来参考。

http://selenium.googlecode.com/git/docs/api/dotnet/index.html

答案 1 :(得分:0)

首先获取元素,然后尝试 -

String s = element.getattribute(&#34; placeholder&#34;);

&安培;你将在字符串中获得该值。 看起来像A504Y&#39;是文本字段中自动生成的占位符