Ok, also ich weiß, es gibt eine Reihe von anderen Antworten auf diese Frage über Warnungen in Webdriver und ich habe sie durchgesehen, aber ich denke, meine Situation ist ein wenig anders. Wenn ich auf meine Senden-Schaltfläche klicke, habe ich bereits in 3 Frames gewechselt und dann habe ich die Warnung erhalten, also habe ich versucht, zu den Standardinhalten zurückzukehren und dann auf die Warnung mit einem try catch and alert.accept zu klicken, aber es klickt immer noch nicht auf aufmerksam. Code ist unten. Vielen Dank im Voraus für Ihre Hilfe :)Klicken Sie auf OK bei Alarm 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 ist das Warnfeld
Sie in der Regel nicht wechseln müssen, um den Standard-Content für Benachrichtigungen bekommen haben. Sind Sie sicher, dass es sich um eine JavaScript-Benachrichtigung handelt? Es funktioniert nur für diese Art von Warnungen. – Mobrockers
Um ehrlich zu sein, bin ich mir nicht sicher, ob ich das Bild der Alarmbox hinzugefügt habe. Gibt es einen einfachen Weg, das zu überprüfen? Firebug funktioniert nicht, sobald die Warnung vorhanden ist. – OhAye
Das sieht für mich nicht wie eine Javascript-Warnung aus. – Mobrockers