0
すべてのdiv IDを収集し、それらを1つずつループして繰り返しを行うシナリオがあります。私はシナリオを実行しましたが、すべてのIDを渡すのに時間がかかります。idsを見つけるためにループを高速化する方法
もっと速くする方法を教えてください。
以下は私のコードスニペットです。
List<WebElement> listoftab = driver.findElements(by.xpath(".//*[contains (@id, 'tabZ')]/div/div[1]"));
Thread.sleep(1000);
String clas1 = "tablist";
String clas2 = "tabView";
for(int i =1; i<=110;i++){
boolean present;
try {
driver.findElement(By.xpath(".//*[@id='tabZ"+i+"']/div/div[1]"));
present = true;
if(clas1.equalsIgnoreCase(driver.findElement(By.xpath(".//*[@id='tabZ"+i+"']/div/div[1]")).getAttribute("class"))) {
tabloop:
for(int j=1;j<=15;j++) {
if(clas2.equalsIgnoreCase(driver.findElement(By.xpath(".//*[@id='tabZ"+i+"']/div/div[1]/div["+j+"]")).getAttribute("class"))) {
String ls = driver.findElement(By.xpath(".//*[@id='tabZ"+i+"']/div/div[1]/div["+j+"]")).getAttribute("id");
System.out.println(ls);
driver.findElement(By.xpath(".//*[@id='"+ls+"']/div[1]/div[2]/canvas[2]")).click();
Thread.sleep(3000);
break tabloop;
}
}
}
} catch (NoSuchElementException e) {
present = false;
continue;
}
}
私たちは何をすべきかを理解できるようにhtmlを表示できます – SaiPawan
これを早くする最も明白な方法は、それらのスリープを削除することです。スリープを使用しないでください:待機を使用すると、ある条件が満たされた直後に進むことができます。 –
インデントを修正してください。その読みにくいです... –