我尝试使用C#和Selenium框架编写自动测试,但我无法获取输入字段的文本。 元素的html:
<input id="WorkPlacePageEmployerKPPcb96e63d-c837-4e7f-827b-2e7d49370f20TextEdit-el" class="base-edit-input ts-box-sizing" placeholder="Empty" value="" style="" tabindex="1" disabled="disabled" type="text">
在我的浏览器中,我看到它里面有一些文字,但是下面的代码
inputElement.Text
返回空字符串。 inputElement
属于OpenQA.Selenium.IWebElement
类型。
我做错了什么?
答案 0 :(得分:1)
<input type="text">
没有文字内容,但在用户发送密钥后更改的属性"value"
尝试替换
inputElement.Text
与
inputElement.GetAttribute("value")
此外,您可以将JavaScriptExceutor
用于此目的:
IJavaScriptExecutor js = (IJavaScriptExecutor)driver;
string inputText = (string)js.ExecuteScript("return arguments[0].value", inputElement);
答案 1 :(得分:1)
似乎可见文字是空的&#39;在浏览器上,你可以看到。请使用以下代码获取浏览器上显示的文字:
inputElement.GetAttribute("placeholder")
此外,您可以根据@Andersson的建议使用JavaScriptExceutor
:
IJavaScriptExecutor js = (IJavaScriptExecutor)driver;
string inputText = (string)js.ExecuteScript("return arguments[0].placeholder", inputElement);