2016-10-18 10 views
0

大きなDOM(1000行、〜10,000ノード)のページでセレンを使用しています。私は要素が存在するかどうかを判断しようとしていますが、これはDOMのほぼ終わりにあります。最後の要素の大きいDOMを検索する

<html> 
    <body> 
     <section></section> 
     <script></script> 
     <span> 
      // several more wrappers around the UL 
      <ul id="itemsList"></ul> 
     </span> 
    </body> 
</html> 

sectionノードがラインの99%が含まれています

構造はこのようなものです。

ULは常に同じ場所にあることを知っています。

私が使用していますXPathは次のとおりです。

//body/span//ul 

ULが存在する場合、検索は< 500ミリ秒かかります。しかし、ULが存在しない場合は、検索に2〜5秒かかります。トラバーサルが同じように起こり、同じ時間がかかると私はこれを理解していません。

セレンを使用しているので、私もBy.Idを使ってみましたが、これは同じ結果をもたらします。

+2

コードに暗黙のタイムアウトがありますか? – Grasshopper

+0

上記のコメントに加えて、getElementsByXpath(またはList )を使用してそのリストのサイズを確認することをお勧めします。 – Mikhail

+0

ハードドライブでルート(C:\)から始まるファイルを検索することを考えてください。 C:¥Users¥you¥Documents¥projects¥foobar¥meetingMinutes¥2015¥January¥ XPathで指定するDOM構造の数が多いほど、セレンが検索しなければならないパスの数が少なくなります。その検索が速くなります。 – MikeJRamsey56

答えて

0

コード内に明示的な待機コマンドがある可能性があります。セレンが要素を見つけることができる場合暗黙の待機それは次のステップに進みます暗黙の待ち時間で要素を見つけることができない場合はを明示的に待ちますを待ってこの要素を明示的に待ちます。例外をスローする前の明示的な待機時間。

+0

もちろん、もちろんです! – FLSH

関連する問題