`

selenium webdriver学习(七)------------如何处理alert、confirm、prompt对话框

阅读更多

alert、confirm、prompt这样的js对话框在selenium1.X时代也是难啃的骨头,常常要用autoit来帮助处理。

试用了一下selenium webdriver中处理这些对话框十分方便简洁。以下面html代码为例:

 

Dialogs.html
<html>

    <head>

        <title>Alert</title>

    </head>

    <body>

        <input id = "alert" value = "alert" type = "button" onclick = "alert('欢迎!请按确认继续!');"/>
 	<input id = "confirm" value = "confirm" type = "button" onclick = "confirm('确定吗?');"/>
	<input id = "prompt" value = "prompt" type = "button" onclick = "var name = prompt('请输入你的名字:','请输入

你的名字'); document.write(name) "/>
	

    </body>

</html>

 以上html代码在页面上显示了三个按钮,点击他们分别弹出alert、confirm、prompt对话框。如果在prompt对话框中输入文字点击确定之后,将会刷新页面,显示出这些文字 。

 

selenium webdriver 处理这些弹层的代码如下:

 

import org.openqa.selenium.Alert;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

public class DialogsStudy {

	/**
	 * @author gongjf
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.setProperty("webdriver.firefox.bin","D:\\Program Files\\Mozilla Firefox\\firefox.exe");  
		WebDriver dr = new FirefoxDriver();
		String url = "file:///C:/Documents and Settings/gongjf/桌面/selenium_test/Dialogs.html";// "/Your/Path/to/main.html"
		dr.get(url);
		
		//点击第一个按钮,输出对话框上面的文字,然后叉掉
		dr.findElement(By.id("alert")).click();
		Alert alert = dr.switchTo().alert();
		String text = alert.getText();
		System.out.println(text);
		alert.dismiss();
		
		//点击第二个按钮,输出对话框上面的文字,然后点击确认
		dr.findElement(By.id("confirm")).click();
		Alert confirm = dr.switchTo().alert();
		String text1 = confirm.getText();
		System.out.println(text1);
		confirm.accept();
		
		//点击第三个按钮,输入你的名字,然后点击确认,最后
		dr.findElement(By.id("prompt")).click();
		Alert prompt = dr.switchTo().alert();
		String text2 = prompt.getText();
		System.out.println(text2);
		prompt.sendKeys("jarvi");
		prompt.accept();
		
	}

}
 

从以上代码可以看出dr.switchTo().alert();这句可以得到alert\confirm\prompt对话框的对象,然后运用其方法对它进行操作。对话框操作的主要方法有:

 

  • getText()    得到它的文本值
  • accept()      相当于点击它的"确认"
  • dismiss()     相当于点击"取消"或者叉掉对话框
  • sendKeys() 输入值,这个alert\confirm没有对话框就不能用了,不然会报错。

 

 

分享到:
评论
2 楼 qincaihong 2012-08-10  
我看错了,上面的不是问题
1 楼 qincaihong 2012-08-10  
String url = "file:///C:/Documents and Settings/gongjf/桌面/selenium_test/Dialogs.html";// "/Your/Path/to/main.html" 
这里是什么意思?为什么要加上:";// "/Your/Path/to/main.html?

相关推荐

    selenium webdriver 学习

    1.7 selenium webdriver学习(七)------------如何处理alert、confirm、prompt对话框 . . . . . . . . .24 1.8 selenium webdriver学习(八)------------如何操作select下拉框 . . . . . . . . . . . . . . . . . ...

    Selenium WebDriver精讲

    第六章讲解如何捕获和处理浏览器中的弹出窗口,包括`alert`、`confirm`和`prompt`对话框。 **捕获弹出窗口的方法**: - 捕获并响应`alert`对话框。 - 捕获并确认/取消`confirm`对话框。 - 填写并提交`prompt`对话框...

    selenium-webdriver从入门到提高

    对话框处理也是自动化测试中经常遇到的场景,本书提供了如何处理alert、confirm以及prompt等原生JS弹出框的方法。 在表单元素处理方面,本书提供了丰富的知识,包括如何使用selenium执行JavaScript,以及如何获取...

    selenium3.0 webdriver+python3.0实例参考

    Selenium可以处理弹出框(alert)、确认框(confirm)和提示框(prompt)。通过`switch_to_alert()`方法可以切换到弹出框,然后执行相应的操作,如接受、拒绝或输入文本。 ### 8. 并行测试与多浏览器支持 Selenium...

    webdriver下定位frame和alert .docx

    Selenium IDE 录制的 `alert` 命令在 JUnit 中同样不适用,但 WebDriver 提供了相应的 API 来处理 alert 对话框: 1. **检查并获取 alert 文本**: ```java Alert alert = driver.switchTo().alert(); String ...

    python上selenium的弹框操作实现

    方法定位到 alert/confifirm/prompt对话框。 2,操作 1,页面弹框 页面弹框是属于HTML里面的元素,它是由用户在操作页面的时候在本页面弹出的。所以科研直接在页面上定位到 步骤: 1,用户操作后,弹出页面弹框 2,...

    selenium基础

    - **处理对话框alert\confirm\prompt**:通过`driver.switchTo().alert()`来操作。 - **表格的处理**:遍历表格中的所有单元格,并提取所需的数据。 - **富文本编辑器**:可以通过特殊的JavaScript调用来操作富文本...

    Selenium alert 弹窗处理的示例代码

    本文将深入探讨如何使用 Selenium 应对三种类型的弹窗:alert(警告信息)、confirm(确认信息)和 prompt(提示输入)。这些弹窗通常在用户执行特定操作时出现,例如点击某个按钮或链接。 1. Alert 弹窗(警告信息...

    Selenium word 版本

    - **处理Alert/Confirm/Prompt**: - 通过SwitchTo接口处理警告框。 ```java Alert alert = dr.switchTo().alert(); alert.accept(); // 确认 alert.dismiss(); // 取消 ``` - **处理Frame**: - 切换到frame...

    java selenium操作弹出对话框示例讲解

    例如,在测试时,我们可以点击触发警告框的按钮,然后使用Selenium的`switchTo().alert()`方法来处理弹出的警告框,获取其文本并接受(`accept()`)或忽略(`dismiss()`)。 2. **提示框(Prompt)**:提示框用于向...

    python selenium 弹出框处理的实现

    当点击按钮时,JavaScript函数会调用`window.alert()`, `window.confirm()`, 或者 `window.prompt()`,然后Selenium可以通过`switch_to.alert`来处理这些对话框。 总结,处理Python Selenium中的弹出框,我们需要...

    selenium_chromedriver

    4. **处理弹出框**:对于alert、confirm、prompt等对话框,可以使用`switch_to.alert`进行相应操作,如接受、取消或输入文本。 5. **截图功能**:当遇到错误或需要记录测试过程时,可以使用`driver.get_screenshot_...

    乙醇老师的力作57页详细讲解—webdriver实用指南java版本.docx

    处理弹窗(alert/confirm/prompt)和等待(wait)功能确保了在特定条件满足时执行后续操作,避免因页面加载延迟导致的测试失败。定位frame中的元素是处理内嵌框架时的必要步骤,而actions类则支持复杂的用户交互,如...

    java selenium 操作弹出窗口示例代码

    除了基本的处理弹出窗口之外,还可以使用类似的方法来处理其他类型的弹出元素,如模态对话框(alert、confirm、prompt)。对于这些对话框,Selenium 提供了`Alert`对象进行交互,如`accept()`接受提示,`dismiss()`...

Global site tag (gtag.js) - Google Analytics