`
uniquepig
  • 浏览: 92134 次
  • 性别: Icon_minigender_2
  • 来自: 成都
社区版块
存档分类
最新评论

WebDriver(Selenium2) 处理可能存在的JS弹出框

阅读更多
在自动化测试过程中,有些情况下我们会遇到一些潜在的Javascript弹出框。(即某些条件下才会出现,不是固定出现),然后如果当这种弹出框出现,我们没有加以处理,WebDriver将无法进行下一步的操作,并且会抛出NoAlertPresentException的异常(从2.16版本开始)。所以,使用以下方法可以处理潜在的1个alert(javascript弹出框)。
	public boolean dealPotentialAlert(WebDriver driver,boolean option) {
		boolean flag = false;
		try {
			Alert alert = driver.switchTo().alert();
			if (null == alert)
				throw new NoAlertPresentException();
			try {
				if (option) {
					alert.accept();
					System.out.println("Accept the alert: " + alert.getText());
				} else {
					alert.dismiss();
					System.out.println("Dismiss the alert: " + alert.getText());
				}
				flag = true;
			} catch (WebDriverException ex) {
				if (ex.getMessage().startsWith("Could not find"))
					System.out.println("There is no alert appear!");
				else
					throw ex;
			}
		} catch (NoAlertPresentException e) {
			System.out.println("There is no alert appear!");
		}
		return flag;
	}

方法返回值为,调用出是否出现了alert。
参数列表中第二个参数option为期望对alert的处理方式(true:ok/false:cancle)
在selenium2.20及以上版本中,增加了alertIsPresent方法。 也可以将这个方法替换上面的内容。用于捕获alert。
1
0
分享到:
评论

相关推荐

    Selenium2.0+Webdriver学习【1】

    - **弹出框与对话框**:包括基本的身份认证对话框、自签名证书处理以及文件上传/下载等操作。 2. **API的简化**:Selenium2.0采用了更为简洁的API设计,主要通过`WebDriver`和`WebElement`两个核心对象来实现自动...

    selenium-WebDriver的API文档

    WebDriver API允许开发者直接与浏览器通信,模拟用户行为,如点击、输入文本、导航、处理弹出窗口等。它支持多种浏览器,包括Chrome、Firefox、IE、Edge等,确保跨浏览器的测试一致性。 **2. WebDriver API 结构** ...

    selenium webdriver基于python源码案例.zip

    8. **高级技巧**:可能涉及多窗口操作、模拟键盘鼠标事件、处理弹出框和对话框,以及执行JavaScript等进阶功能。 9. **实战案例**:提供多个完整的网页自动化测试案例,例如登录注册流程、商品搜索、购物车操作等,...

    selenium-webdriver从入门到提高

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

    selenium webdriver

    这意味着它可以处理 JavaScript 重定向、弹出窗口等复杂场景。 #### 二、Selenium WebDriver 的环境搭建 - **1.1 Selenium 介绍**: - Selenium 是一个用于 Web 应用程序测试的工具包。 - 它包含多个组件,如 ...

    Selenium WebDriver

    它可以创建一个会话,打开网页,填写表单,点击按钮,执行JavaScript,甚至处理弹出窗口和对话框。这种直接控制提供了更精确的测试能力,使得测试脚本能够反映出真实用户的行为。 Selenium支持多种编程语言,如Java...

    python selenium 弹出框处理的实现

    总结,处理Python Selenium中的弹出框,我们需要根据弹出框的类型使用不同的策略。对于页面内弹出框,我们依赖元素定位;而对于浏览器级别的Windows弹出框,我们利用`switch_to.alert`方法来操作。理解这些基本概念...

    selenium_WebDriver_java版使用指南

    除了基本的浏览器控制,它还支持许多高级操作,如元素定位、交互(点击、输入文本等)、模拟用户行为(如鼠标悬停、键盘事件)、处理弹出窗口和对话框,以及执行JavaScript等。 #### 4.1 访问链接 在页面上,我们...

    selenium-webdriver-java api文档

    - `switchTo().alert()`: 处理弹出对话框 - `switchTo().defaultContent()`: 返回到默认内容 ### 8. 总结 Selenium WebDriver for Java API 提供了一套强大的工具,帮助开发者编写高效、可靠的Web自动化测试脚本。...

    Selenium Webdriver

    除了基本的元素操作,Selenium Webdriver还支持框架级的测试,例如模拟键盘事件、处理弹出框、文件上传、处理cookies等。对于复杂的测试场景,可以利用Selenium Grid进行分布式测试,将测试用例并行运行在多台机器上...

    python版本selenium webdriver api

    对于弹出窗口,如确认对话框、警告对话框,可以使用`switch_to.alert`来处理: ```python alert = driver.switch_to.alert alert.accept() # 确认 alert.dismiss() # 取消 ``` **高级使用**: 除了基本操作,...

    Selenium WebDriver Practical Guide-Code

    8. **高级特性**:如模拟鼠标和键盘事件,处理弹出窗口和对话框,处理cookies,以及处理JavaScript执行。 9. **异常处理**:在遇到页面元素未找到或网络问题时,如何优雅地处理异常。 10. **多浏览器测试**:如何...

    SELENIUM2自动化测试实战(基于PYTHON语言)源码.zip

    7. **高级应用**:可能包含使用Selenium进行分布式测试、模拟键盘鼠标事件、处理弹出框和对话框、执行JavaScript等进阶技巧。 8. **实战案例**:提供实际的Web应用测试案例,如登录注册流程、购物车操作、搜索功能...

    selenium 2 testing tools

    WebDriver API的设计思想是更加接近真实用户的使用方式,它可以直接模拟用户的操作,包括键盘输入,鼠标操作,甚至可以模拟浏览器的弹出窗口。 Selenium 2的核心组件包括了Selenium IDE,Selenium RC和Selenium ...

    解决不确定窗口弹出问题.docx

    每次处理完一个弹出框后,使用`time.sleep(2)`添加了2秒的延迟,这可以防止因为窗口关闭速度过快而错过某些弹出框。 `except NoAlertPresentException`是处理没有弹出框的情况。如果在尝试期间没有弹出框存在,该...

    FireFoxDriver-WebDriver

    通过Selenium 3.3.1和FirefoxDriver,我们可以执行一系列网页操作,如点击按钮、填写表单、模拟用户交互、处理弹出窗口、进行页面导航等。这在Web应用测试、网站性能评估、数据抓取等场景中非常有用。同时,由于...

    [转载]Selenium2.0之WebDriver学习总结(1).docx

    Selenium1.0虽然允许开发者使用多种编程语言进行测试,但依赖于JavaScript库与浏览器交互,这在某些情况下受限于浏览器的安全策略,例如无法处理本机键盘和鼠标事件、同源策略限制以及弹出框等。而Selenium2.0引入了...

    Selenium使用文档压缩包

    读者可以从中学习到如何处理复杂场景,比如模拟用户输入,处理JavaScript弹出框,执行AJAX请求后的测试,或者如何利用Selenium Grid进行分布式测试,以提高测试效率。这本书可能还包括了一些高级话题,如测试设计...

Global site tag (gtag.js) - Google Analytics