簡體   English   中英

根據錯誤執行操作

[英]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. 導航到產品頁面。 (缺少您的代碼)
  2. 選擇尺寸(以及其他未知尺寸)
  3. 繼續單擊“將項目添加到購物籃”,直到得到:

    一種。 包含“對不起”的錯誤,此時您需要從步驟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.

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