Selenium2+python自动化13-Alert

时间:2022-05-13 11:50:21

不是所有的弹出框都叫alert,在使用alert方法前,先要识别出它到底是不是alert。先认清楚alert长什么样子,下次碰到了,就可以用对应方法解决。

alert\confirm\prompt弹出框操作主要方法有:

text() :获取文本值

accept() :点击"确认"

dismiss() :点击"取消"或者叉掉对话框

send_keys() :输入文本值 --仅限于prompt,在alert和confirm上没有输入框

QQ交流群:232607095

(版权所有:"软件测试部落"微信公众号)
一、认识alert\confirm\prompt

     1.如下图,从上到下依次为alert\confirm\prompt,先认清楚长什么样子。

Selenium2+python自动化13-Alert

    2.html源码如下(有兴趣的可以copy出来,复制到txt文本里,后缀改成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>  
稿源:微信开发www . qixoo.com
(本篇原文出自微信公众号:软件测试部落)
二、alert操作

    1.先用switch_to_alert()方法切换到alert弹出框上

    2.可以用text()方法获取弹出的文本 信息

    3.accept()点击确认按钮

    4.dismiss()相当于点右上角x,取消弹出框

Selenium2+python自动化13-Alert
三、confirm操作

   1.先用switch_to_alert()方法切换到alert弹出框上

    2.可以用text()方法获取弹出的文本 信息

    3.accept()点击确认按钮

    4.dismiss()相当于点取消按钮或点右上角x,取消弹出框

(本篇原文出自微信公众号:软件测试部落)

Selenium2+python自动化13-Alert
四、prompt操作

   1.先用switch_to_alert()方法切换到alert弹出框上

    2.可以用text()方法获取弹出的文本 信息

    3.accept()点击确认按钮

    4.dismiss()相当于点右上角x,取消弹出框

    5.send_keys()这里多个输入框,可以用send_keys()方法输入文本内容

Selenium2+python自动化13-Alert
五、select遇到的坑

    1.在操作百度设置里面,点击“保存设置”按钮时,alert弹出框没有弹出来。(Ie浏览器是可以的)

    2.分析原因:经过慢慢调试后发现,在点击"保存设置"按钮时,由于前面的select操作后,失去了焦点

    3.解决办法:在select操作后,做个click()点击操作

(本篇原文出自微信公众号:软件测试部落)

Selenium2+python自动化13-Alert

s = driver.find_element_by_id("nr")

Select(s).select_by_visible_text("每页显示20条")

time.sleep(3)

s.click()
六、最终代码

# coding:utf-8

from selenium import webdriver

from selenium.webdriver.common.action_chains import ActionChains

from selenium.webdriver.support.select import Select

import time

driver = webdriver.Firefox()

url = "https://www.baidu.com"

driver.get(url)

driver.implicitly_wait(20)

# 鼠标移动到“设置”按钮

mouse = driver.find_element_by_link_text("设置")

ActionChains(driver).move_to_element(mouse).perform()

driver.find_element_by_link_text("搜索设置").click()

# 通过text:select_by_visible_text()

s = driver.find_element_by_id("nr")

Select(s).select_by_visible_text("每页显示20条")

time.sleep(3)

s.click()

driver.find_element_by_link_text("保存设置").click()

time.sleep(5)

# 获取alert弹框

t = driver.switch_to_alert()

print t.text

t.accept()

(本篇原文出自微信公众号:软件测试部落)
      这一篇应该比较简单,Alert相关的内容比较少,虽然有一些页面也有弹窗,但不是所有的弹窗都叫alert。alert的弹出框界面比较简洁,是调用的系统弹窗警告框,没花里胡哨的东西,还是很容易区分的。小伙伴们在学习过程中遇到疑难杂症,可以在论坛www.hordehome.com提问,小编能解决的话,会发专题详细介绍selenium(java+python)QQ交流群:232607095(加群验证码:hordehome)

查看selenium系列课程,关注下方公众号,回复:selenium

selenium2+python自动化入门系列1-环境安装

selenium2+python自动化入门系列2-pycharm

selenium2+python自动化入门系列3-操作浏览器

selenium2+python自动化入门系列4-元素定位

selenium2+python自动化入门系列5-xpath定位

selenium2+python自动化入门系列6-CSS定位

selenium2+python自动化入门系列7-登录案例

selenium2+python自动化入门系列8-定位一组元素

selenium2+python自动化入门系列9-操作元素

selenium2+python自动化入门系列10-多窗口(第一季完)

Selenium2+python自动化系列11-iframe

Selenium2+python自动化系列12-select