5.8.1 Accept()
单击弹出对话框的确认按钮,可以同时对Alert、Confirmation以及Prompt使用。
例如程序清单5-58或程序清单的代码,依次单击这些按钮,弹出各种对话框并进行单击,为了看得清楚,每个单击操作后面都增加了3秒的延迟。
程序清单5-58 C#代码
static void Main(string[] args) { IWebDriver driver = new FirefoxDriver(); INavigation navigation = driver.Navigate(); navigation.GoToUrl("C:\\Users\\Administrator\\Desktop\\testPage.html"); IWebElement btn = driver.FindElement(By.XPath("//input[1]")); btn.Click(); System.Threading.Thread.Sleep(3000); driver.SwitchTo().Alert().Accept(); IWebElement btn2 = driver.FindElement(By.XPath("//input[2]")); btn2.Click(); System.Threading.Thread.Sleep(3000); driver.SwitchTo().Alert().Accept(); IWebElement btn3 = driver.FindElement(By.XPath("//input[3]")); btn3.Click(); System.Threading.Thread.Sleep(3000); driver.SwitchTo().Alert().Accept(); } |
程序清单5-59 Java代码
public static void main(String[] args) throws InterruptedException { //如果启动出现问题,可以使用System.setProperty指出firefox.exe的路径 //System.setProperty("webdriver.firefox.bin","D:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe"); WebDriver driver = new FirefoxDriver(); Navigation navigation = driver.navigate(); navigation.to("C:\\Users\\Administrator\\Desktop\\testPage.html"); WebElement btn = driver.findElement(By.xpath("//input[1]")); btn.click(); Thread.sleep(3000); driver.switchTo().alert().accept(); WebElement btn2 = driver.findElement(By.xpath("//input[2]")); btn2.click(); Thread.sleep(3000); driver.switchTo().alert().accept(); WebElement btn3 = driver.findElement(By.xpath("//input[3]")); btn3.click(); Thread.sleep(3000); driver.switchTo().alert().accept(); } |
执行代码后,可以发现页面上依次弹出了Alert、Confirmation以及Prompt对话框,并依次单击了确定按钮。
5.8.2 Dismiss()
单击弹出对话框的取消按钮,可以同时对Alert、Confirmation以及Prompt使用。不过对于Alert来说,Accept()和Dismiss()没有什么区别,所以完全不必对其使用Dismiss()。
例如程序清单5-60或程序清单5-61所示的代码,依次单击这些按钮,弹出各种对话框并进行单击,为了看得清楚,每个单击操作后面都增加了3秒的延迟。
程序清单5-60 C#代码
static void Main(string[] args) { IWebDriver driver = new FirefoxDriver(); INavigation navigation = driver.Navigate(); navigation.GoToUrl("C:\\Users\\Administrator\\Desktop\\testPage.html"); IWebElement btn2 = driver.FindElement(By.XPath("//input[2]")); btn2.Click(); System.Threading.Thread.Sleep(3000); driver.SwitchTo().Alert().Dismiss(); IWebElement btn3 = driver.FindElement(By.XPath("//input[3]")); btn3.Click(); System.Threading.Thread.Sleep(3000); driver.SwitchTo().Alert().Dismiss(); } |