本章节针对测试过程中,我们在实际操作中会存在一些弹出警告提示的信息框,针对这些信息框我们也需要进行验证是处理确认可操作性的正确与否
在webdriver中处理js生成的alert confirm,使用switch_to_alert()方法定位,然后使用text/accept/dismiss/send_keys方法进行操作
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html" charset="UTF-8">
<title></title>
</head>
<body>
<div align="left">
<h1>selenium 测试弹框处理方法</h1>
<h2><input type="button" onclick="Alter2()" value="input1-accept 输入弹框信息"/>
<input type="button" onclick="Alert3()" value="input2-提示获取弹窗按钮信息"/>
<input type="button" onclick="Alert1()" value="input3-确认弹窗按钮操作"/><br><br><br></h2>
<span id="SID"></span>
</div>
</body>
<script>
function Alert(){
document.getElementById("SID").innerHTML="";
if(confirm("天煞的自动化")){
document.getElementById("SID").innerHTML="<font style='color: red;'>自动化很强大</font>";
}else{
document.getElementById("SID").innerHTML="<font style='color: red;'>自动化太痛苦!</font>";
}
}
function Alter2(){
document.getElementById("SID").innerHTML="";
con = prompt("输入yes为要想狂自动化,输入no为我不自动化,但我也很强");
if(con=="yes"){
document.getElementById("SID").innerHTML="<font style='color: red;'>要想狂自动化</font>";
}else if(con=="no"){
document.getElementById("SID").innerHTML="<font style='color: red;'>我不自动化,但我也很强</font>";
}else{
document.getElementById("SID").innerHTML="<font style='color: red;'>请按照套路输入信息,否则列入黑名单</font>";
}
}
function Alert3(){
document.getElementById("SID").innerHTML="";
alert("测试依然变得更加强大了,你准备好了吗?");
}
</script>
</html>
#第一步 导入需要的包
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
import time
#第二步驱动浏览器并打开网页
driver=webdriver.Chrome()
driver.implicitly_wait(10)
driver.get('file:///Users/xxx/PycharmProjects/seleniumtest/test.html')
#第三步 定位元素
'''
text=driver.find_element_by_xpath("/html/body/div/h2/input[1]").click()
alter = driver.switch_to_alert()
alter.text #返回弹框文本
alter.accept() ## 弹框之后确认
alter.dismiss()## 弹框之后取消
alter.send_keys("yes") ## 弹框输入的内容
time.sleep(2)
'''
driver.find_element_by_xpath('/html/body/div/h2/input[1]').click()
dialog_box = driver.switch_to_alert()
time.sleep(2)
dialog_box.send_keys("yes")
dialog_box.accept()
print (driver.find_element_by_xpath('//*[@id="textSpan"]/font').text) #获取确认弹窗结果
time.sleep(2)
driver.find_element_by_xpath('/html/body/div/h2/input[1]').click()
dialog_box = driver.switch_to_alert()
time.sleep(2)
dialog_box.dismiss() #关闭对话框
print (driver.find_element_by_xpath('//*[@id="textSpan"]/font').text) #获取关闭弹窗结果
time.sleep(2)
driver.quit()
待完善,后续出现特殊情况继续补充。。。。。