1
<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;

我怎样才能做到这一点?

4

6 回答 6

1

在java中 -

String x = driver.findElement(By.name("SummaryErrorCmsIds")).getAttribute("Value"));
于 2012-08-22T05:26:11.943 回答
1

更好的方法是使用 XPATH

 driver.FindElement(By.XPath("...\li")).Text; (OR)

 driver.FindElement(By.XPath("...\li")).GetAttribute("value"); 
于 2015-05-04T09:07:50.460 回答
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"))

然后从这个元素中获取你需要的信息。

于 2012-09-02T15:37:33.167 回答
0

您的问题是您选择了错误的元素。我不知道您的 html 是什么样的,但请尝试查看 FindElements 并尝试通过“li”进行查找

看这里:使用 Selenium 2 的 IWebDriver 与页面上的元素进行交互

于 2012-08-21T23:38:24.397 回答
0

IN C# it should be as follows.

String var1= driver.FindElement(By.XPath("//div[contains(@id, 'ValidationSummary')]")).Text;
于 2012-11-29T11:06:03.607 回答
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
}
于 2012-08-22T10:45:50.633 回答