Selenium中三种弹框的使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Selenium中三种弹框的使用相关的知识,希望对你有一定的参考价值。

参考技术A 三种弹框:             alert:用来提示

                               confirm:用来确认

                               prompt:输入内容

常用的属性和方法:accept() 接受

                                dismiss()取消

                                text显示的文本

                                send_keys输入内容

源码:

from seleniumimport webdriver

from timeimport sleep

import os

class TestCase(object):

def __init__(self):

self.driver = webdriver.Chrome()

path = os.path.dirname(os.path.abspath(__file__))#os.path.abspath当前文件路径

        file_path ='file:///' + path +'/test_alert.html'

        self.driver.get(file_path)

def test_alert(self):

self.driver.find_element_by_id('alert').click()

#切换到alert

        a =self.driver.switch_to.alert

print(a.text)

sleep(2)

a.accept()

def test_confirm(self):

self.driver.find_element_by_id('confirm').click()

#切换到confirm

        c =self.driver.switch_to.alert

print(c.text)

sleep(2)

#c.accept()

        c.dismiss()

def test_prompt(self):

self.driver.find_element_by_id('prompt').click()

#切换到confirm

        p =self.driver.switch_to.alert

print(p.text)

sleep(2)

p.send_keys('18')

p.accept()

if __name__ =='__main__':

case = TestCase()

#case.test_alert()

#case.test_confirm()

    case.test_prompt()

test_alert.html:

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>Title</title>

</head>

<body>

<a href="javascript:alert('提示框')" id="alert">Alert</a><br>

<a href="javascript:confirm('真的要删除吗')" id="confirm">Confirm</a><br>

<a href="javascript:var age = prompt('请输入年龄');document.write(age)" id="prompt">Prompt</a><br>

</body>

</html>

JS浏览器的三种弹框:

1.alert:使用alert弹框提示信息,最后都会被转化为字符串输出(因为调用了toString这个方法)。比如alert(1+1)弹出的结果应该是字符串形式的“2”。

2.Confirm:在alert基础上增加了让用户选择性的操作(提供两个按钮:确定和取消)

比如:var  delin = confirm(‘你确定要删除吗?’);

这一句,当用户点击确定按钮的时候,我们接受到的结果是true,点击的是取消按钮的时候,我们接受到的结果是false,此后我们可以根据不同的结果做不同的处理即可。

3.Prompt:在confirm的基础上增加让用户输入的效果

比如var flag = prompt(‘请输入你想反馈的意见:’);

当用户点击取消按钮,我们获取到的结果是null;如果用户点击确定按钮,我们获取到的是用户输入的内容。(如果用户没有输入任何内容,获取到的的结果是空字符串)

//但是真实的项目中,尤其是需要样式精美的网站中,我们的提示框一般都是自己封装插件和组件来实现,不会使用内置的这些方法(要使用原生JS封装模态框组件)

以上是关于Selenium中三种弹框的使用的主要内容,如果未能解决你的问题,请参考以下文章

selenium的弹框处理

selenium测试,有弹框的情况下无法截屏

Selenium中三种等待的使用方式

selenium - webdriver 警告框处理 switch_to.alert

Selenium自动化测试脚本中三种等待时间简介

JSP中三种弹出对话框的用法《转》