2017-05-29 30 views
-1

かなり単純な質問ですが、これには問題があります。 sleep.threadを使用して、ランダムな範囲のボタン、たとえば30〜50秒のボタンをクリックします。スリープコマンドでなければなりません。 (私は私のために働いていない、別の答えでこれを見つけた)Thread.sleepを乱数にする方法(Selenium Java)

List<WebElement> textfields = driver.findElements(By.className("_84y62")); 


    System.out.println("total buttons " + textfields.size()); 

     for (WebElement e : textfields) { 
      e.click(); 

       Thread.sleep((long)(Math.random() * 11 + 10)); 
      } 
+1

どのように機能しませんか?それはエラーを引き起こしていますか、またはあなたが期待どおりに眠っていませんか? – James

+1

'sleep 'のドキュメントを読んだことがありますか? – chrylis

答えて

0

簡単な数式を使用することができます。

private void sleepRandomly() { 
    try { 
     Thread.sleep(getMillis()); 
    } catch (InterruptedException e) { 
     Thread.currentThread().interrupt(); 
     throw new RuntimeException(e); 
    } 
} 

private static long getMillis() { 
    return (long) (Math.random() * 20_000 + 30_000); 
} 

sleepを覚えて、時間の長さをすることを期待ミリ秒単位で眠る。

+0

信頼できる答えをありがとう、それは素晴らしい仕事です。以前のコードでは、遅滞なくトラフボタンをクリックしていました。 – serengeti

-1

のThread.sleep()が待機するようにそう、ミリ秒単位の引数の値を使用している要素と行うには私の試みをクリックするループがあります50秒の場合は、 Thread.sleep(50000)に電話する必要があります。 選択した範囲内の値を生成するために、私は次のように私が実装し、30〜50秒の間で一時停止したい場合は、あなたが randomNum = minimum + (long)(Math.random() * maximum)

+0

数式がオフです。 'Math.random()* maximum'は' maximum - minimum'ではなく 'maximum'の範囲を与えます。 – shmosel

+0

投票の前にコードを確認してください。 [link](https://stackoverflow.com/questions/363681/how-do-i-generate-random-integers-within-a-specific-range-in-java) – Tarik

+0

あなたは**質問を使用しています* *あなたのソースとして?あなたは問題を見なかったのですか? 'randomNum'は' maximum'よりも大きくなります*?私はdownvoter btwではなかった。 – shmosel

関連する問題