2012-03-21 12 views
0

私は次のことを達成しようとしています:セレンのwebdriver Java: "if else"パフォーマンスを改善しますか?

  • 特定の要素が存在する場合は、それをクリックして、ホームページに戻ります。テストは、私は以下のコードが出ている

を失敗せずに続けるよう

  • はそうでない場合は、単にホームページに戻って、これをそれは本当に遅いです。私はこれを実装するための良い方法があるとは思わない?すべてのコメントをいただければ幸いです!

    boolean exists = driver.findElements(By.id("xxx")).size() != 0; 
    
    if (exists) 
        { 
        driver.findElement(By.id("xxx")).click(); 
        driver.findElement(By.cssSelector("xxx")).click(); 
        } 
        else 
        { 
        driver.findElement(By.cssSelector("xxx")).click(); 
        } 
    
  • 答えて

    0

    CSSセレクタには何を使用していますか?これらを調整するだけで、パフォーマンスを向上させることができます。それを遅くするもう一つの事は、ページがあまりにも多くてDOM elementsです。

    CSSセレクタと、スキャンするDOM要素の例を参照すると便利です。例えば

    、あなたのページが、このようなクラスで1000個のDIV要素のフルの場合:

    <div class="smallItem">...</div> 
    <div class="largeItem">...</div> 
    <div class="smallItem">...</div> 
    

    、あなたはこのようにCSSセレクタを使用します。すべてを選択するには

    ".smallItem" 
    

    DIV要素の場合、各DOM要素をスキャンしてクラス属性を計算する必要があります。

    +1

    感謝!! – user1282634

    4

    私はパフォーマンスが低下しているものを解決しました。

    driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); 
    

    このステートメントのため、30秒間要素が検証されるまで待機します。

    にそれを変更した後:フィードバックのための

    driver.manage().timeouts().implicitlyWait(1, TimeUnit.SECONDS); 
    

    ...それは今...魔法のように動作します:)

    関連する問題