2.11 alert\confirm\prompt
aS4Em"AJ!{:q-n%E0前言 51Testing软件测试网:m"AK:QgW7y
不是所有的弹出框都叫alert,在使用alert方法前,先要识别出到底是不是alert。先认清楚alert长什么样子,下次碰到了,就可以用对应方法解决。
5~7~*{:t;g7I^K;}Z Mo0alert\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$rie51Testing软件测试网$^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软件测试网_9WpmlHD;YG3K_N
2.可以用text方法获取弹出的文本 信息51Testing软件测试网&\"@KD K
pK
3.accept()点击确认按钮51Testing软件测试网8Q
XeM8hs)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\ `3t X
4.dismiss()相当于点取消按钮或点右上角x,取消弹出框
r*Z.Q-Qz[0(url的路径,直接复制浏览器打开的路径)
.M,`8qy{`.Gl[8~03bErB8~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
^0WyH%vHV`G})@0五、select遇到的坑51Testing软件测试网/[#or0_:V/h^~U
1.在操作百度设置里面,点击“保存设置”按钮时,alert弹出框没有弹出来。(Ie浏览器是可以的)
;Ei] S6\&d6I|0 2.分析原因:经过慢慢调试后发现,在点击"保存设置"按钮时,由于前面的select操作后,失去了焦点
$@bcz P0 3.解决办法:在select操作后,做个click()点击操作
.}V'g
s$V]0"n0t JG,L wwvw0
?0]_wl`7N0s = 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|z t~ 六、最终代码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/Z g$t
51Testing软件测试网z };P5f7v@alert的弹出框界面比较简洁,调用的是Windows系统弹窗警告框,没花里胡哨的东西,还是很容易区分的。
7S\,|:vdYD]KC0