弹出对话框的处理—Selenium自动化测试指南(6)

发表于:2013-9-02 11:32

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:赵卓    来源:51Testing软件测试网

分享:

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

54/5<12345>
重磅发布,2022软件测试行业现状调查报告~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计

法律顾问:上海漕溪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2023
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号