如何使用C#将Web元素值转换为字符串变量

时间:2017-02-28 15:44:09

标签: c# html selenium-webdriver input

我需要读取元素的输入值并将其保存到字符串变量中 在我的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");                

2 个答案:

答案 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);