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

2.11 alert\confirm\prompt

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

2.11 alert\confirm\prompt

51Testing软件测试网i9jwgf\-yc

前言   
;g2x$P2S'dFX:m0不是所有的弹出框都叫alert,在使用alert方法前,先要识别出到底是不是alert。先认清楚alert长什么样子,下次碰到了,就可以用对应方法解决。
ck1h V,KH0alert\confirm\prompt弹出框操作主要方法有:51Testing软件测试网9v K$q,i+E!am
text:获取文本值
M9D*LsT7PRq6N0accept() :点击"确认"
Q2R9l6Gqp n0dismiss() :点击"取消"或者叉掉对话框
!Nl#PV1[ m;C0send_keys() :输入文本值 --仅限于prompt,在alert和confirm上没有输入框51Testing软件测试网 V8eC`{@!LLLdD2w6]

[7mA[ dN_0一、认识alert\confirm\prompt51Testing软件测试网.b&k!jD*h*p,[|N
     1.如下图,从上到下依次为alert\confirm\prompt,先认清楚长什么样子,以后遇到了就知道如何操作了。51Testing软件测试网-G.eR6Y6}:C XV5q

51Testing软件测试网JL9|,H&t

%M)SJV%c051Testing软件测试网i+N*^ Kf

    2.html源码如下(有兴趣的可以copy出来,复制到txt文本里,后缀改成html就可以了,然后用浏览器打开):

eZ+B w2Q0
复制代码
<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软件测试网 n-RT8h]"tM

二、alert操作51Testing软件测试网 tj5{'xK qyX

51Testing软件测试网^|p+]/rS B y

   1.先用switch_to_alert()方法切换到alert弹出框上
9T:DE,Q,` p4O0    2.可以用text方法获取弹出的文本 信息51Testing软件测试网+to w6?8H.E5KQ
    3.accept()点击确认按钮51Testing软件测试网5Gxo6V4o&vI
    4.dismiss()相当于点右上角x,取消弹出框
{%OTN c8W0   (url的路径,直接复制浏览器打开的路径)51Testing软件测试网3w.?+{`0a P

/N5`:||(TaD4M051Testing软件测试网/McGQ*spN|l

51Testing软件测试网W4\{,o8DO}

三、confirm操作
:Y"sOO4R0   1.先用switch_to_alert()方法切换到alert弹出框上51Testing软件测试网r HgK1J%B8Hmh9m
    2.可以用text方法获取弹出的文本 信息
;clJ6xlTZ0    3.accept()点击确认按钮51Testing软件测试网_ IB0i!m^
    4.dismiss()相当于点取消按钮或点右上角x,取消弹出框51Testing软件测试网xF2N TX(F0v:g)r"Ab
(url的路径,直接复制浏览器打开的路径)51Testing软件测试网%s{%XQC'f

~ PY ngq.K@bwK051Testing软件测试网x"Z CEdI&P

*Wn6IS7E Q,b `0kmd0四、prompt操作
C1i*e,ufD3ul0   1.先用switch_to_alert()方法切换到alert弹出框上
tP*cOf)o_0    2.可以用text方法获取弹出的文本 信息51Testing软件测试网8j*f,Vb/E @ k\f,n3gL
    3.accept()点击确认按钮
6ra{/@6@B0    4.dismiss()相当于点右上角x,取消弹出框51Testing软件测试网V:n!c:o t,u ]hq
    5.send_keys()这里多个输入框,可以用send_keys()方法输入文本内容
I\/P,[$n7T:v*H0(url的路径,直接复制浏览器打开的路径)

PC$}3O(Z2VWY0

$O.yCBx;c051Testing软件测试网o(s-^b"K2[@#AVRaT&n

cZy_-t0五、select遇到的坑51Testing软件测试网h8NIj5m.n1@
    1.在操作百度设置里面,点击“保存设置”按钮时,alert弹出框没有弹出来。(Ie浏览器是可以的)
I[!^!_9M!r.VfKya5x0    2.分析原因:经过慢慢调试后发现,在点击"保存设置"按钮时,由于前面的select操作后,失去了焦点51Testing软件测试网@0SWoS(V:|
    3.解决办法:在select操作后,做个click()点击操作

\wpO j051Testing软件测试网:`Zz'Rg0oNSH

51Testing软件测试网 k2Il8[!gF+_$B!S

s = driver.find_element_by_id("nr")
Select(s).select_by_visible_text("每页显示20条")
time.sleep(3)
s.click()
51Testing软件测试网\ lt I0rp+l+~5E

 

-C"rU ^Y)Em7V0

)E:I(v#k r.lr:L7i0 六、最终代码51Testing软件测试网*d/@5OQE(r N#Q2|

复制代码
#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软件测试网)o2t{\(s

这一篇应该比较简单,alert相关的内容比较少,虽然有一些页面也有弹窗,但不是所有的弹窗都叫alert。

!s0X k;H&w|!^0

b$mJ:i;y E ^0alert的弹出框界面比较简洁,调用的是Windows系统弹窗警告框,没花里胡哨的东西,还是很容易区分的。51Testing软件测试网GB5d;|:I A


TAG:

 

评分:0

我来说两句

Open Toolbar