单击 OK on alert Selenium Webdriver
Click OK on alert Selenium Webdriver
好的,所以我知道关于这个关于 webdriver 中的警报的问题还有许多其他答案,我已经浏览过它们,但我认为我的情况有点不同。当我点击我的提交按钮时,我已经切换到 3 帧然后我收到警报,所以我尝试切换回默认内容然后使用 try catch 和 alert.accept 单击警报但它仍然没有单击警报。代码如下。预先感谢您的帮助:)
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 这里是警告框
对于大多数警报,您可以按回车键来按警报 "ok"。
当你在 catch
中获得 UnhandledAlertException
时试试这个
WebDriverWait wait = new WebDriverWait(driver, 3000);
wait.until(ExpectedConditions.alertIsPresent());
Alert alert = webDriver.switchTo().alert();
alert.accept();
也许它会对你有所帮助...:)
好的,所以我知道关于这个关于 webdriver 中的警报的问题还有许多其他答案,我已经浏览过它们,但我认为我的情况有点不同。当我点击我的提交按钮时,我已经切换到 3 帧然后我收到警报,所以我尝试切换回默认内容然后使用 try catch 和 alert.accept 单击警报但它仍然没有单击警报。代码如下。预先感谢您的帮助:)
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 这里是警告框
对于大多数警报,您可以按回车键来按警报 "ok"。
当你在 catch
UnhandledAlertException
时试试这个
WebDriverWait wait = new WebDriverWait(driver, 3000);
wait.until(ExpectedConditions.alertIsPresent());
Alert alert = webDriver.switchTo().alert();
alert.accept();
也许它会对你有所帮助...:)