如何使用selenium webdriver获取此div标签?

时间:2012-08-21 14:21:21

标签: c# selenium selenium-webdriver

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

我该怎么做?

6 个答案:

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