-1

誰かが私を助けてくれるのだろうか。ユーザーがフォルダーアイコンをシングルクリックして開閉するアプリケーションがあります(Windowsエクスプローラーツリーでファイルをナビゲート/探索する方法と同様)-Selenium IDEでテストを記録しているとき、生成されるコードは次のとおりです。

<tr>
    <td>click</td>
    <td>//ul[@id='analysisTree']/li[3]/p</td>
    <td></td>
</tr>
<tr>
    <td>click</td>
    <td>//ul[@id='analysisTree']/li[4]/p</td>
    <td></td>
</tr>

以下は、フォルダーの折りたたまれた状態に対応するアプリケーションのソース コードのスニペットです。

<li class="folder collapsed" data-nodecode="RentalValues">
<p>Rental Values</p>
<ul>
</li>
<li class="folder collapsed" data-nodecode="Affordability">
<p>Affordability</p>
<ul>
</li>

現在のデフォルト要素の xpath ロケーターの問題は、数か月後にツリーに別のフォルダーを導入すると、フォルダーの位置がツリーの上または下に移動し、間違ったフォルダーが開かれる可能性があることです。したがって、誰かがより堅牢で、ツリー内のフォルダーの正確な場所ではなく、一意のフォルダーの名前に依存する XPath をまとめるのを手伝ってもらえますか?

乾杯

シャン

4

1 に答える 1

1

data-nodecode属性に基づいて選択できます。

<tr> 
  <td>click</td> 
  <td>//ul[@id='analysisTree']/li[@data-nodecode='RentalValues']/p</td> 
  <td></td> 
</tr> 
. . . 

またはフォルダの名前で:

<tr> 
  <td>click</td> 
  <td>//ul[@id='analysisTree']/li[normalize-space(.)='Rental Values']/p</td> 
  <td></td> 
</tr> 
. . . 

normalize-space(.)現在の要素 (liこの場合) に含まれる完全なテキストを取得し、余分な空白を取り除きます。

于 2012-04-13T11:42:22.110 に答える