List<WebElement> list= driver.findElements(By.xpath("Abc"));
for (int i = 0; i< list; i ) {
if (list.get(i).getText().equals("Newly Created From Automation")) {
logger.info("Unable to delete Saved Filter Successfully");
}
else {
logger.info("Filter deleted successfully");
}
}
我希望 if 條件檢查所有元素并僅列印一次 else 條件,如果所有元素的 if 條件都為 false,但它會繼續為每個 webElement 列印 else 中的代碼。
uj5u.com熱心網友回復:
為了獲得您正在尋找的內容,您應該更改代碼的邏輯。
一種可能的方法如下:
- 將所有元素文本收集到串列中。
- 迭代文本。如果找到所需的文本 - 列印相應的輸出。如果未找到該文本 - 列印其他輸出。
請參閱下面的代碼示例
List<WebElement> list = driver.findElements(By.xpath("Abc"));
List<String> texts = new ArrayList<>();
for(WebElement element : list){
texts.put(element.getText());
}
boolean found = false;
for(String str: texts) {
if(str.trim().contains("Newly Created From Automation")){
logger.info("Unable to delete Saved Filter Successfully");
found = true;
}
if(!found){
logger.info("Filter deleted successfully");
}
uj5u.com熱心網友回復:
使用 Stream APIallMatch檢查是否所有 web 元素文本都具有該值"Newly Created From Automation",如果為 true 則列印訊息,"Filter deleted successfully"否則列印"Unable to delete Saved Filter Successfully":
boolean filterDeleted = list.stream().allMatch(webElement ->
webElement.getText().equals("Newly Created From Automation"));
if(filterDeleted)){
logger.info("Filter deleted successfully");
}else{
logger.info("Unable to delete Saved Filter Successfully");
}
uj5u.com熱心網友回復:
您可以像這樣簡單地為每個回圈使用 a :
List<WebElement> list = driver.findElements(By.xpath("Abc"));
for(WebElement element : list) {
if(element.getText().equals("Newly Created From Automation")) {
System.out.println("WebElement text matched with Newly Created From Automatio");
logger.info("Unable to delete Saved Filter Successfully");
}
else {
System.out.println("For WebElement" element.getAttribute("innerHTML") " seems like it does not have Newly Created From Automation");
logger.info("Filter deleted successfully");
}
}
它完全等同于你已經擁有的,
但你的 for 回圈應該是這樣的:
for (int i = 0; i< list.size(); i ) {
不是
for (int i = 0; i< list; i ) {
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/340837.html
