[英]Perform action depending on error
因此,我需要我的腳本不斷單擊按鈕,直到出現錯誤為止。 但是,根據錯誤,腳本需要采取不同的操作。
有人可以建議以下代碼有什么問題嗎? 我希望它單擊一個按鈕,直到顯示錯誤為止。 然后如果拋出錯誤,請查看其中包含的文本以執行幾種不同的操作。
我正在嘗試添加購物籃,如果錯誤包含“對不起”,則清除購物籃,如果包含“未知”,則停止腳本。
我的代碼發布在下面。 由於未發現錯誤,它不斷失敗(這是正常現象,因為它並不總是顯示)。
driver.findElement(By.id("SizeKey")).click();
new Select(driver.findElement(By.id("SizeKey"))).selectByVisibleText("Size 12 (UK)");
driver.findElement(By.cssSelector("option[value=\"15488\"]")).click();
driver.findElement(By.name("AddItemToBasket")).click();
if (driver.findElement(By.cssSelector("ul.error > li.last")).isDisplayed()){
driver.findElement(By.cssSelector("ul.error > li.last")).getText().contains("Sorry");
driver.findElement(By.id("basket-value")).click();
driver.findElement(By.id("empty-user-bag")).click();
driver.get(TESTURL);
}
else if (driver.findElement(By.cssSelector("ul.error > li.last")).getText().contains("unknown")){
Thread.sleep(90000000);
}
else
{
driver.findElement(By.id("SizeKey")).click();
new Select(driver.findElement(By.id("SizeKey"))).selectByVisibleText("Size 12 (UK)");
driver.findElement(By.cssSelector("option[value=\"15488\"]")).click();
driver.findElement(By.name("AddItemToBasket")).click();
}
很難確定在這種情況下您到底想做什么,而且我很難弄清某些代碼的意圖。 我做出了一個最佳猜測,並清理了您的代碼,以嘗試完成我認為您想做的事情。
我認為您正在嘗試做的事情:
繼續單擊“將項目添加到購物籃”,直到得到:
一種。 包含“對不起”的錯誤,此時您需要從步驟1重新開始
b。 包含“未知”錯誤的腳本將在該時間退出。
...這是代碼...
driver.get(url);
boolean error = false;
while (!error)
{
// driver.findElement(By.id("SizeKey")).click(); // this line shouldn't be needed?
new Select(driver.findElement(By.id("SizeKey"))).selectByVisibleText("Size 12 (UK)");
driver.findElement(By.cssSelector("option[value=\"15488\"]")).click();
driver.findElement(By.name("AddItemToBasket")).click();
WebElement errorElement = driver.findElement(By.cssSelector("ul.error > li.last"));
if (errorElement.isDisplayed())
{
if (errorElement.getText().contains("Sorry"))
{
driver.findElement(By.id("basket-value")).click();
driver.findElement(By.id("empty-user-bag")).click();
driver.get(url);
}
else if (errorElement.getText().contains("unknown"))
{
error = true;
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.