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>

I want to capture the text having value of E024 E012 and E014 and write it in to an Excel file.

I tried the following but it doesn't work.

string val1 = driver.FindElement(By.XPath("//div[contains(@class, 'errorblock'/ value = 'E024|E012|E014'")).Text;

How can I do this?

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

これがあなたの意図したものかどうかはわかりませんが、私の解決策の例は次のとおりです。

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 に答える
0

C# では、次のようになります。

String var1= driver.FindElement(By.XPath("//div[contains(@id, 'ValidationSummary')]")).Text;
于 2012-11-29T11:06:03.607 に答える