HTML如下:
<div id="field-container" class="field-container center">
<form id="param-list" class="ui form">
<div>
<div class="field-group"><label class="input-label" data-tooltip="Australia, Hello" data-position="right center">Beta</label>
<div class="field">
<div class="ui input"><input id="11" value="123" type="text"></div>
</div>
</div>
<div class="field-group"><label class="input-label" data-tooltip="Australia, USA" data-position="right center">Carbon Reduction</label>
<div class="field">
<div class="ui input"><input id="12" value="" type="text"></div>
</div>
</div>
&#13;
我的webUI上面有html,我正在尝试阅读里面的所有字段(id =&#34; param-list&#34;)并获取Beta和Carbon Reduction的名称以及&#34;数据提示&#34 ;.以下是我想要做的,但我无法取回它。
public static List<string> GetFieldsName()
{
List<string> expected = new List<string>();
IWebElement elament = driver.FindElement(container); //container = By.Id("param-list");
IList<IWebElement> fieldNames = elament.FindElements(FiledName); //By.ClassName("field");
foreach (IWebElement fieldname in fieldNames)
{
IList<IWebElement> names = fieldname.FindElements(Inputlable); //By.ClassName("input");
foreach (var name in names)
{
expected.Add(name.GetAttribute("tooltip"));
}
}
return expected;
}
当我这样做时,所有我回来的都是NULL并且不确定如何从Html上面选择名称 Beta 和 Carbon Reduction 。
答案 0 :(得分:0)
根据您共享的用于提取UI <label>
文本的 HTML ,您可以使用以下任一解决方案:
public static List<string> GetFieldsName()
{
List<string> expected = new List<string>();
IList<IWebElement> labelNames = driver.FindElements(By.XPath("//div[@class='field-container center' and @id='field-container']//div[@class='field-group']/label[@class='input-label']"));
foreach (IWebElement labelName in labelNames)
{
expected.Add(labelName.GetAttribute("innerHTML"));
}
return expected;
}
答案 1 :(得分:0)
下面的代码将返回您的工具提示,如果您同时需要文本和工具提示,请使用双数组或字典
Cannot match given parameters to declared parameters at if