python selenium 处理JS弹出对话框(六)

在实际系统中,在完成某些操作时会弹出对话框来提示,主要分为"警告消息框","确认消息框","提示消息对话"三种类型的对话框。

1.警告消息框(alert)
  警告消息框提供了一个"确定"按钮让用户关闭该消息框,并且该消息框是模式对话框,也就是说用户必须先关闭该消息框然后才能继续进行操作。

2.确认消息框(confirm)

  确认消息框向用户提示一个"是与否"问题,用户可以根据选择"确定"按钮和"取消"按钮。

3.提示消息对话(prompt)
  提示消息框提供了一个文本字段,用户可以在此字段输入一个答案来响应您的提示。该消息框有一个"确定"按钮和一个"取消"按钮。选择"确认"会响应对应的提示信息,选择"取消"会关闭对话框。

selenium 提供switch_to_alert()方法定位到 alert/confirm/prompt对话框。使用 text/accept/dismiss/send_keys 进行操作,这里注意的是send_keys只能对prompt进行操作。

  • switch_to_alert()   #定位弹出对话
  • text()                   #获取对话框文本值
  • accept()                   #相当于点击"确认"
  • dismiss()                  #相当于点击"取消"
  • send_keys()              # 输入值,这个alert和confirm没有输入对话框,所以这里就不能用了,所以这里只能使用在prompt这里。

为了便于显示switch_to_alter()方法,下面我这边写了一个小小的页面,这里我把三种对话框全部包括下来,然后来进行模拟实际过程中遇到的对话框。

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
        <title></title>
    </head>
    <body>
        <div align="center">
        <h4>hello girl</h4>
        <input type="button" onclick="showPro()" value="输入框弹窗按钮"/>
        <input type="button" onclick="showAlert2()" value="提示弹窗按钮"/>
        <input type="button" onclick="showAlert()" value="确认弹窗按钮"/><br><br><br>
        <span id="textSpan"></span>

        </div>
    </body>
    <script>
        function showAlert(){
            document.getElementById("textSpan").innerHTML="";
            if(confirm("你是帅哥吗?")){
                document.getElementById("textSpan").innerHTML="<font style=‘color: red;‘>您为何如此自信?</font>";
            }else{
                document.getElementById("textSpan").innerHTML="<font style=‘color: red;‘>您为何如此谦虚?</font>";
            }

        }
        function showPro(){
            document.getElementById("textSpan").innerHTML="";
            con = prompt("输入1为强哥聪明,输入2为左哥笨");
            if(con==1){
                document.getElementById("textSpan").innerHTML="<font style=‘color: green;‘>强哥是真聪明啊</font>";
            }else if(con==2){
                document.getElementById("textSpan").innerHTML="<font style=‘color: green;‘>左哥是真笨啊</font>";
            }else{
                document.getElementById("textSpan").innerHTML="<font style=‘color: red;‘>您没有按要求输入,请重新输入</font>";
            }
        }
        function showAlert2(){
            document.getElementById("textSpan").innerHTML="";
            alert("用我三世烟火,换你一世迷离");
        }
    </script>
</html>

下面的三个例子,主要来演示如何处理上面说的三种对话框。 

 1.处理alert对话框。

#-*-coding:utf-8 -*-
import time
from selenium import webdriver
driver = webdriver.Chrome()
driver.maximize_window()
driver.get(‘file:///C:/Users/hunk/Desktop/alter.html‘)
‘‘‘获取alert对话框的按钮,点击按钮,弹出alert对话框‘‘‘
driver.find_element_by_xpath(‘/html/body/div/input[2]‘).click()
‘‘‘获取alert对话框‘‘‘
alert = driver.switch_to_alert()
‘‘‘添加等待时间‘‘‘
time.sleep(2)
‘‘‘获取警告对话框的内容‘‘‘
print (alert.text)  #打印警告对话框内容
alert.accept()   #alert对话框属于警告对话框,我们这里只能接受弹窗
‘‘‘添加等待时间‘‘‘
time.sleep(2)
driver.quit()

2.处理confirm对话框

#-*-coding:utf-8 -*-
import time
from selenium import webdriver
driver = webdriver.Chrome()
driver.maximize_window()
driver.get(‘file:///C:/Users/hunk/Desktop/alter.html‘)
‘‘‘获取confirm对话框的按钮,点击按钮,弹出confirm对话框‘‘‘
driver.find_element_by_xpath(‘/html/body/div/input[3]‘).click()
‘‘‘获取confirm对话框‘‘‘
dialog_box = driver.switch_to_alert()
‘‘‘添加等待时间‘‘‘
time.sleep(2)
‘‘‘获取对话框的内容‘‘‘
print (dialog_box.text)  #打印警告对话框内容
‘‘‘点击【确认】显示"您为何如此自信?"‘‘‘
dialog_box.accept()   #接受弹窗
print (driver.find_element_by_xpath(‘//*[@id="textSpan"]/font‘).text)
time.sleep(2)
‘‘‘再次获取confirm对话框的按钮,点击按钮,弹出confirm对话框‘‘‘
driver.find_element_by_xpath(‘/html/body/div/input[3]‘).click()
‘‘‘再次获取confirm对话框‘‘‘
dialog_box = driver.switch_to_alert()
‘‘‘点击【取消】显示"您为何如此谦虚?"‘‘‘
time.sleep(2)
dialog_box.dismiss()  #关闭获取取消对话框
print (driver.find_element_by_xpath(‘//*[@id="textSpan"]/font‘).text)
driver.quit()

3.处理prompt对话框

#-*-coding:utf-8 -*-
import time
from selenium import webdriver
driver = webdriver.Chrome()
driver.maximize_window()
‘‘‘获取对话框输入2,并且点击【确认】,文本框内提示<左哥是真笨啊>,点击【取消】文本框内提示<您没有按要求输入,请重新输入>‘‘‘
driver.get(‘file:///C:/Users/hunk/Desktop/alter.html‘)
‘‘‘获取prompt对话框的按钮,点击按钮,弹出confirm对话框‘‘‘
driver.find_element_by_xpath(‘/html/body/div/input[1]‘).click()
‘‘‘获取prompt对话框‘‘‘
dialog_box = driver.switch_to_alert()
‘‘‘添加等待时间‘‘‘
time.sleep(2)
‘‘‘获取对话框的内容‘‘‘
print (dialog_box.text)  #打印警告对话框内容
dialog_box.send_keys("2")  #弹出框内输入2
dialog_box.accept()  #接受
print (driver.find_element_by_xpath(‘//*[@id="textSpan"]/font‘).text)  #获取关闭弹窗结果  #获取确认弹窗结果
‘‘‘这里等待几秒在测试取消‘‘‘
time.sleep(2)
#************************点击【取消】,并且获取显示结果**********************
driver.find_element_by_xpath(‘/html/body/div/input[1]‘).click()
‘‘‘获取prompt对话框‘‘‘
dialog_box = driver.switch_to_alert()
‘‘‘添加等待时间‘‘‘
time.sleep(2)
dialog_box.dismiss()  #关闭对话框
print (driver.find_element_by_xpath(‘//*[@id="textSpan"]/font‘).text)  #获取关闭弹窗结果
time.sleep(2)
driver.quit()
时间: 2024-08-28 14:37:43

python selenium 处理JS弹出对话框(六)的相关文章

JS弹出对话框的三种实现方式的意义

最近开始学习JavaScript,最开始讲的就是alert().confirm()和prompt()三种JS弹出对话框.三种弹出对话框分别是警告.确认和提示消息. 第一种警告消息框 (alert)     alert 方法有一个参数,即希望对用户显示的文本字符串.该字符串不是 HTML 格式.该消息框提供了一个"确定"按钮让用户关闭该消息框,并且该消息框是模式对话框,也就是说,用户必须先关闭该消息框然后才能继续进行操作. <script> alert("Hello

js弹出对话框

<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>js弹出对话框</title> <script language="javascript"> function alter1() {     alert("我敢保证,你现在用的是演示一

js 弹出对话框的方法总结

原文:http://www.cnblogs.com/xiaofengfeng/archive/2012/10/20/2732784.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.o

JS弹出对话框的三种方式

JS弹出对话框的三种方式 我们用到了alert()方法.prompt()方法.prompt()方法,都是在网页有一个弹出框,那么就让我们探究一下他们之间的区别: 一.第一种:alert()方法 <html> <head> <title>编写html页面</title> <script language="javascript"> //JavaScript脚本标注 alert("15");//在页面上弹出 &

java selenium (十一) 操作弹出对话框

Web 开发人员通常需要利用JavaScript弹出对话框来给用户一些信息提示, 包括以下几种类型 阅读目录 对话框类型 1.  警告框: 用于提示用户相关信息的验证结果, 错误或警告等 2. 提示框: 用于提示用户在当前对话框中输入数据,一般需要用户单击取消或者确认按钮 3. 确认框: 用于提示用户确认或者取消某个操作,一般需要用户单击取消或者确认按钮 测试页面 用如下页面为例进行讲解, 包括了警告框,提示框,确认框 http://sislands.com/coin70/week1/dialo

JS弹出对话框函数alert(),confirm(),prompt()

1,警告消息框alert() alert 方法有一个参数,即希望对用户显示的文本字符串.该字符串不是 HTML 格式.该消息框提供了一个“确定”按钮让用户关闭该消息框,并且该消息框是模式对话框,也就是说,用户必须先关闭该消息框然后才能继续进行操作. 2,确认消息框confirm() 使用确认消息框可向用户问一个“是-或-否”问题,并且用户可以选择单击“确定”按钮或者单击“取消”按钮.confirm 方法的返回值为 true 或 false.该消息框也是模式对话框:用户必须在响应该对话框(单击一个

Selenium(八):其他操作元素的方法、冻结界面、弹出对话框、开发技巧

1. 其他操作元素的方法 之前我们对web元素做的操作主要是:选择元素,然后点击元素或者输入字符串. 还有没有其他的操作了呢?有. 比如:比如鼠标右键点击.双击.移动鼠标到某个元素.鼠标拖拽等. 这些操作,可以通过Selenium提供的ActionChains类来实现. ActionChains类里面提供了一些特殊的动作的模拟,我们可以通过 ActionChains 类的代码查看到,如下所示: 我们以移动鼠标到某个元素为例. 百度首页的右上角,有个更多产品选项,如下图所示: 如果我们把鼠标放在上

selenium移动div里面的滚动条,操作弹出对话框

还是使用js来移动 首先要定位到这个元素 倾向于使用js来定位元素,输入下面的脚本,按下回车键,即可在调试页面看到对应的div块$("div.table-responsive") 滚动方法使用scrollLeft()$("div.table-responsive").scrollLeft(1000) 应用到java selenium中 为了避免输入数字可以这样写 ((JavascriptExecutor) driver).executeScript("$(

一个js编写全选、弹出对话框、ajax-json的案例

js功能有:全选.弹出对话框.使用json传输ajax数据:不想在写多余的文字了,直接上代码: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@taglib prefix="c" uri="http://java.sun.com/jstl/core"%>