<div id="ctl00_ContentHolder_vs_ValidationSummary" class="errorblock">
<p><strong>The following errors were found:</strong></p>
<ul><input type="hidden" Name="SummaryErrorCmsIds" Value="E024|E012|E014" />
<li>Please select a title.</li>
<li>Please key in your first name.</li>
<li>Please key in your last name.</li>
</ul>
</div>
我想捕获值为E024 E012和E014的文本并将其写入Excel文件。
我尝试了以下但不起作用。
string val1 = driver.FindElement(By.XPath("//div[contains(@class, 'errorblock'/ value = 'E024|E012|E014'")).Text;
我该怎么做?
答案 0 :(得分:1)
在java -
中String x = driver.findElement(By.name("SummaryErrorCmsIds")).getAttribute("Value"));
答案 1 :(得分:1)
更好的方法是使用XPATH
driver.FindElement(By.XPath("...\li")).Text; (OR)
driver.FindElement(By.XPath("...\li")).GetAttribute("value");
答案 2 :(得分:0)
你的问题是你选择了错误的元素。我不知道你的html是什么样的,但是试着查看FindElements并尝试通过'li'进行查找
看看这里:Using Selenium 2's IWebDriver to interact with elements on the page
答案 3 :(得分:0)
我不确定这是不是你的意思,但我的示例解决方案是:
WebElement element = driver.findElement(By.className("errorblock")).findElement(By.tagName("ul"));
List<WebElement> values = element.findElements(By.tagName("li"))
for (WebElement value : values)
{
String valueString = value.getText();
//write to excel or whatever
}
答案 4 :(得分:0)
试试这个:
var div = driver.FindElement(By.XPath("//div[contains(@id, 'ValidationSummary')]"));
var targetElement = div.FindElement(By.XPath("//ul[contains(@name, 'SummaryErrorCmsIds')]"));
// or var targetElement = div.FindElement(By.TagName("input"))
然后从这个元素中获取所需的信息。
答案 5 :(得分:0)
IN C#应该如下。
String var1= driver.FindElement(By.XPath("//div[contains(@id, 'ValidationSummary')]")).Text;