簡體   English   中英

selenium webdriver Java:提高“其他”性能嗎?

[英]selenium webdriver Java: improve “if else” performance?

我正在努力實現以下目標:

  • 如果存在特定元素,請單擊它並返回主頁。
  • 否則,只需返回主頁,即可繼續進行測試而不會失敗

我想出了下面的代碼,但這確實很慢。 我不確定是否有更好的方法來實現這一目標? 任何意見將不勝感激!

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();
   }

我找出了導致性能下降的原因。 就是這一行:

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

由於該語句,它將等待元素被驗證30秒鍾。

更改為:

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

..現在它就像一種魅力... :)

您用於CSS選擇器的是什么? 通過調整這些設置,您也許可以提高性能。 會使它變慢的另一件事是當頁面具有太多DOM元素時

查看CSS選擇器以及正在掃描哪些DOM元素的示例將很有幫助。

例如,如果您的頁面充滿了1000個DIV元素,並且具有如下所示的類:

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

然后使用這樣的css選擇器:

".smallItem"

要選擇所有DIV元素,它必須掃描每個DOM元素並在class屬性上進行計算。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM