我需要读取元素的输入值并将其保存到字符串变量中 在我的c#windows表单应用程序中。可能吗? 以下是我找到元素的方法:
IWebElement SearchCounter = Browser.FindElement(By.Id("counter"));
这是元素的html代码:
<div id="page-content">
<input type="hidden" id="counter" value="355">
如果无法获取该值,我如何阅读此元素html源并将其分配给我的应用中的字符串变量?
我没有得到任何结果:
string cs = SearchCounter.GetAttribute("innerHtml");
答案 0 :(得分:1)
如果您想获得输入值 - 您应该使用
string cs = SearchCounter.GetAttribute("value");
代替GetAttribute(&#34; innerHTML&#34;);
如果要检索元素的html源,请使用innerHtml。
Browser.FindElement(By.Id("page-content").GetAttribute("innerHTML")
会返回<input type="hidden" id="counter" value="355">
而SearchCounter.GetAttribute(&#34; innerHTML&#34;)会返回输入内容。
答案 1 :(得分:0)
要阅读value
属性的值,GetAttribute
应该是您正在寻找的内容。例如,要获得挪威&#34;在该演示页面之外,您使用以下代码:https://www.w3schools.com/Tags/tryit.asp?filename=tryhtml5_input_type_hidden
driver.Navigate().GoToUrl("https://www.w3schools.com/Tags/tryit.asp?filename=tryhtml5_input_type_hidden");
driver.SwitchTo().Frame(driver.FindElement(By.Id("iframeResult")));
var element = driver.FindElement(By.Name("country"));
var value = element.GetAttribute("value");
Console.WriteLine(value);
对于第二个问题,driver.PageSource
属性为您提供当前页面的HTML。当然,你必须自己处理它。
var source = driver.PageSource;
Console.WriteLine(source);