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>

たとえば、これが私のスニペットです。IDの値、つまりct100_contentHolder_vs_ValidationSummaryを取得したいです。Selenium Webドライバーを使用しています。時間

4

3 に答える 3

4

これを試すことができます:

String id=driver.findElementByXpath("//div[@class='errorblock']").getAttribute("id"));

ただし、この場合、この部門のクラスは一意である必要があります。

于 2012-11-22T05:46:22.170 に答える
0

私はこの答えが本当に遅いことを知っていますが、後で来る人のためにこれをここに置きたいと思いました. XPath による検索は、より複雑で、エラーが発生しやすく、低速であるため、絶対に必要な場合を除き、避ける必要があります。この場合、XPathを使用しなくても、受け入れられた回答が行ったことを簡単に実行できます。

String id = driver.findElement(By.cssSelector("div.errorblock")).getAttribute("id");

いくつかの説明... この行は、CSS セレクターを使用して最初の要素 ( .findElementvs ) を見つけます。.findElementsCSS セレクター は、クラス (ピリオドで表される)を持つdiv.errorblockすべての要素を検索します。見つかったら、 を使用して ID を取得します。div.errorblock.getAttribute()

CSS セレクターは、すべての自動化者がツールボックスに入れておくべき優れたツールです。ここには優れた CSS セレクターのリファレンスがあります: http://www.w3.org/TR/selectors/#selectors

于 2015-08-10T14:22:12.303 に答える
0

次のコードを使用して、最初の div の ID を抽出します。

WebElement div = driver.findElement(By.tagName("div"));
div.getAttribute("id");

これは、ページで使用可能なすべての div のコードです。

List<WebElement> div = driver.findElements(By.tagName("div"));
for ( WebElement e : div ) {    
    div.getAttribute("id");    
}
于 2014-04-23T12:40:54.577 に答える