测试必须在时间、质量和成本之间获取一个平衡点,这是测试策略和测试设计的价值体现。

2.11 alert\confirm\prompt

上一篇 / 下一篇  2018-06-12 10:49:12 / 个人分类:Python+Selenium2 WebDriver API

2.11 alert\confirm\prompt

aS4Em"AJ!{:q-n%E0前言   51Testing软件测试网:m"AK:QgW7y
不是所有的弹出框都叫alert,在使用alert方法前,先要识别出到底是不是alert。先认清楚alert长什么样子,下次碰到了,就可以用对应方法解决。
5~7~*{:t;g7I^K;}ZM o0alert\confirm\prompt弹出框操作主要方法有:51Testing软件测试网Z!B!nR)E1F7^!sM
text:获取文本值51Testing软件测试网4[yvM%nF
accept() :点击"确认"
J8E!HL)I0dismiss() :点击"取消"或者叉掉对话框51Testing软件测试网o ^%NBS!QKh:m1e
send_keys() :输入文本值 --仅限于prompt,在alert和confirm上没有输入框

:xBs[jI051Testing软件测试网'{9O!M![$?P#AE

一、认识alert\confirm\prompt51Testing软件测试网Tl?2O/~Yxd
     1.如下图,从上到下依次为alert\confirm\prompt,先认清楚长什么样子,以后遇到了就知道如何操作了。51Testing软件测试网%B3_8M(c,w

51Testing软件测试网3Q2pDlV$rie

51Testing软件测试网$^M-iKj{H

8r y [S$F%Q,K4e|8C0    2.html源码如下(有兴趣的可以copy出来,复制到txt文本里,后缀改成html就可以了,然后用浏览器打开):51Testing软件测试网 `9\v,vK-J,N,] }j

复制代码
<html><head>  <title>Alert</title></head><body><inputid= "alert"value= "alert"type= "button"onclick= "alert('您关注了yoyoketang吗?');"/><inputid= "confirm"value= "confirm"type= "button"onclick= "confirm('确定关注微信公众号:yoyoketang?');"/><inputid= "prompt"value= "prompt"type= "button"onclick= "var name = 
prompt('请输入微信公众号:','yoyoketang'); document.write(name) "/></body></html>
复制代码
51Testing软件测试网F#b|1IF|

二、alert操作51Testing软件测试网?:kQ0N6H N'{

Eq%Y7INT:F]0   1.先用switch_to_alert()方法切换到alert弹出框上51Testing软件测试网_9Wpml HD;YG3K_N
    2.可以用text方法获取弹出的文本 信息51Testing软件测试网&\"@KD K p K
    3.accept()点击确认按钮51Testing软件测试网8Q XeM8h s)z"HW^
    4.dismiss()相当于点右上角x,取消弹出框
e.vkLEd0   (url的路径,直接复制浏览器打开的路径)

wN/jad2qfF051Testing软件测试网:B3sC8rq'F4l`

51Testing软件测试网 C\T!IDS

jGiG{ ~0三、confirm操作
t0V2Z/MZ]7p0   1.先用switch_to_alert()方法切换到alert弹出框上51Testing软件测试网q3nb`'I:I
    2.可以用text方法获取弹出的文本 信息51Testing软件测试网)Im!bV(s+]7G!J[
    3.accept()点击确认按钮51Testing软件测试网k]T(_0\`3tX
    4.dismiss()相当于点取消按钮或点右上角x,取消弹出框
r*Z.Q-Qz[0(url的路径,直接复制浏览器打开的路径)

.M,`8qy{`.Gl[8~0

3bErB8~d ?~1v0

,n+OlVe#F,g0

$CO {6QV`w9dtP,k0四、prompt操作
_{;d8`5p0   1.先用switch_to_alert()方法切换到alert弹出框上
-T:V kR.Q([2n#r,~0    2.可以用text方法获取弹出的文本 信息
2T5\j:a#j0    3.accept()点击确认按钮51Testing软件测试网!W3VTj0n@
    4.dismiss()相当于点右上角x,取消弹出框51Testing软件测试网H5v^V4K6D"Y [Sv
    5.send_keys()这里多个输入框,可以用send_keys()方法输入文本内容51Testing软件测试网ncfQd+| W
(url的路径,直接复制浏览器打开的路径)51Testing软件测试网3v r/Bt b {

k5m0O'rgnC0

YeXkUb ^0

WyH%vHV`G})@0五、select遇到的坑51Testing软件测试网/[#or0_:V/h^~U
    1.在操作百度设置里面,点击“保存设置”按钮时,alert弹出框没有弹出来。(Ie浏览器是可以的)
;Ei] S6\&d6I|0    2.分析原因:经过慢慢调试后发现,在点击"保存设置"按钮时,由于前面的select操作后,失去了焦点
$@bczP0    3.解决办法:在select操作后,做个click()点击操作

.}V'g s$V]0

"n0t JG,L wwvw0

?0] _wl`7N0
s = driver.find_element_by_id("nr")
Select(s).select_by_visible_text("每页显示20条")
time.sleep(3)
s.click()
51Testing软件测试网iiPw,k` n6Do[:p.m

 

:v3jr ePV F5f4{j051Testing软件测试网6YG|zt~

 六、最终代码51Testing软件测试网Q7t7XZb

复制代码
#coding:utf-8fromseleniumimportwebdriverfromselenium.webdriver.common.action_chainsimportActionChainsfromselenium.webdriver.support.selectimportSelectimporttime
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()printt.text
t.accept()
复制代码
51Testing软件测试网@7[;b#?;zP ^#^

这一篇应该比较简单,alert相关的内容比较少,虽然有一些页面也有弹窗,但不是所有的弹窗都叫alert。51Testing软件测试网3Xa/Zg$t

51Testing软件测试网z };P5f7v@

alert的弹出框界面比较简洁,调用的是Windows系统弹窗警告框,没花里胡哨的东西,还是很容易区分的。

7S\,|:vdYD]KC0

TAG:

 

评分:0

我来说两句

Open Toolbar