2016-06-02 8 views
1

Итак, я знаю, что есть ряд других ответов на этот вопрос об оповещениях в webdriver, и я просмотрел их, но я думаю, что моя ситуация немного отличается. Когда я нажимаю кнопку отправки, я уже переключился на 3 кадра, а затем получил предупреждение, поэтому я попытался вернуться к содержимому по умолчанию, а затем щелкнуть предупреждение, используя try catch и alert.accept, но он по-прежнему не нажимает кнопку оповещения. Код ниже. Заранее спасибо за помощь :)Нажмите «ОК» в предупреждении. Selenium Webdriver

public class BookAHoliday { 

    public FirstPage completeHolidayFormAndSubmit(String firstDate, String lastDate) { 

     sleepsAreBad(); 
     driver.switchTo().frame("ContainerFrame"); 
     driver.switchTo().frame("iframeCommunityContainer"); 
     driver.switchTo().frame("FORMCONTAINER"); 
     fluentWait(By.id("StartDate_txtInput")); 
     firstDayOfLeaveInput.sendKeys(firstDate); 
     sleepsAreBad(); 
     lastDayofLeaveInput.sendKeys(lastDate); 

     try { 
      submitButton.click(); 
     } catch (UnhandledAlertException f) { 
      try { 
       sleepsAreBad(); 
       driver.switchTo().defaultContent(); 
       Alert alert = driver.switchTo().alert(); 
       String alertText = alert.getText(); 
       System.out.println("Alert data: " + alertText); 
       alert.accept(); 
      } catch (NoAlertPresentException e) { 
       e.printStackTrace(); 
      } 
     } 
     sleepsAreBad(); 

     return PageFactory.initElements(driver, FirstPage.class); 
    } 


    private void sleepsAreBad() { 
     try { 
      Thread.sleep(5000); 
     } catch (InterruptedException e) { 
      e.printStackTrace(); 
     } 

    } 


public class BaseTest { 


    public static WebDriver driver; 
    static String driverPath = "C:\\"; 

    @BeforeClass 
    public static void setUp() { 
     System.out.println("****************"); 
     System.out.println("launching Browser"); 
     System.out.println("****************"); 
     // Browser selection 

     //Firefox 

     DesiredCapabilities dc = new DesiredCapabilities(); 
     dc.setCapability(CapabilityType.UNEXPECTED_ALERT_BEHAVIOUR, UnexpectedAlertBehaviour.IGNORE); 
     driver = new FirefoxDriver(dc); 

driver.get(URL); 

@AfterClass() 
    public static void tearDown() { 
     if (driver != null) { 
      System.out.println("Closing browser"); 
      driver.quit(); 
     } 

    } 


public class Bookings extends BaseTest{ 

    @Test(description = "Holiday booking") 
    public void CD01() { 

     FirstPage firstPage = PageFactory.initElements(driver, FirstPage.class); 
     firstPage 


       .logIn("username", "password") 
       .clickHolidayLink() 
       .completeHolidayFormAndSubmit("12/05/2016", "15/05/2016"); 



    } 

alert box Вот окно предупреждения

+0

Вы, как правило, не нужно, чтобы перейти к содержимому по умолчанию для оповещений. Вы уверены, что это предупреждение javascript? Он работает только для таких предупреждений. – Mobrockers

+0

Честно говоря, я не уверен, что добавил изображение окна предупреждения. Есть ли простой способ проверить? firebug не работает, когда присутствует предупреждение. – OhAye

+0

Это не похоже на предупреждение javascript для меня. – Mobrockers

ответ

0

Попробуйте это, когда вы получили UnhandledAlertException в catch

WebDriverWait wait = new WebDriverWait(driver, 3000); 
wait.until(ExpectedConditions.alertIsPresent()); 
Alert alert = webDriver.switchTo().alert(); 
alert.accept(); 

Может быть, это поможет вам ... :)

+0

Я думал, alert.accept работает только с javascript и не модальные диалоги? – OhAye

+1

Вы реализовали это или вы только подумали ??? –

+1

Потому что я столкнулся с этим типом множественных проблем с диалогими ... и если селен явно бросает UnhandledAlertException ... означает, что он может обрабатываться селеном ... так что вы не можете проголосовать только за свои мысли. –

-1

Для большинства предупреждений вы можете нажать клавишу ввода нажать alert`s «ОК».

+1

Я действительно думал об этом, но хотел что-то немного лучше, чем отправить ключ Enter, будет использовать его как последнее средство, хотя :) – OhAye

 Смежные вопросы

  • Нет связанных вопросов^_^