2016-06-24 36 views
0

所以,我需要我的腳本來保持點擊按鈕,直到出現錯誤;但是,根據錯誤,腳本需要採取不同的操作。根據錯誤執行操作

有人可以告訴下面的代碼有什麼問題嗎?我希望它點擊一個按鈕,直到顯示錯誤;那麼如果發生錯誤,請查看它包含哪些文本以執行幾個不同的操作。

我想添加籃子,然後如果錯誤包含「對不起」清除籃子,如果它包含「未知」停止腳本。

我的代碼張貼如下。由於沒有找到錯誤,因此它保持失敗(這是正常行爲,因爲它並不總是顯示)。

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

如何代碼 「保持失敗」?你有特定的錯誤嗎? –

+0

你能告訴我們錯誤是什麼樣子嗎?它是如何顯示的? –

回答

0

很難確定到底是什麼你想在這種情況下做的,我有一個很難搞清楚的一些代碼的意圖是什麼。我做了一個最好的猜測,並清理了你的代碼,試圖完成我認爲你正在嘗試做的事情。

我認爲你正在嘗試做的:

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