0

サイトのページからエラー メッセージを取得しようとしています。リストには考えられるエラーがいくつか含まれているため、ID で確認することはできません。しかし、display:list-item が必要なものであることはわかっています。これは私のルールですが、機能していないようです。何が問題なのですか? 返してほしいのは、要素内のエラー テキストです。

//*[@id='errors']/ul/li[contains(@style,'display:list-item')]

dom 要素の例:

<div id="errors" class="some class" style="display: block;">
<div class="some other class"></div>
<div class="some other class 2">
<span class="displayError">Please correct the errors listed in red below:</span>
<ul>
    <li style="display:none;" id="invalidId">Enter a valid id</li>
    <li style="display:list-item;" id="genericError">Something bad happened</li>
    <li style="display:none;" id="somethingBlah" ............ </li>
    ....
</ul>
</div>
4

1 に答える 1

1

正しい XPath は次のようになります。

//*[@id='errors']//ul/li[contains(@style,'display:list-item')]

はそのすぐ下にないため//*[@id='errors']、余分な が必要な後。を再度使用すると、下にあるすべての要素がスキャンされます。/<ul>//<ul>

使用できない場合は//、より良く、より速く、消費量が少なくなります。

于 2013-09-27T22:31:04.357 に答える