0


python自动化测试selenium核心技术处理弹框

页面上的弹框一般有三种:

(1)alert:用来提示

(2)confirm:用来确认

(2)prompt:输入内容

示例网站:Sahi Tests

示例场景:打开Sahi Tests页面,

(1)点击“Alert Test”页面,鼠标点击页面中“Click For Alert”按钮,弹出警告提示框,判断页面是否存在alert,如存在则切换到警告框,并获取警告文本信息,之后点警告框中的确定按钮。

(2)点击“Confirm Page”页面,鼠标点击页面中“Click For Confirm”按钮,弹出确认提示框,判断页面是否存在alert,如存在则切换到警告框,并获取警告文本信息,之后点警告框中的“确定”或“取消”按钮。

(3)点击“Prompt Page”页面,鼠标点击页面中“Click For Prompt”按钮,弹出确认提示输入框,判断页面是否存在alert,如存在则切换到警告框,获取警告文本信息或输入文本内容,之后点警告框中的“确定”或“取消”按钮。

完整示例脚本:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

from
selenium 
import
webdriver
from
time 
import
sleep
from
selenium.webdriver.support.wait 
import
WebDriverWait
from
selenium.webdriver.support 
import
expected_conditions as ec 
class
TestWaitCondition(
object
):
    
def
setup(
self
):
        
self
.driver 
=
webdriver.Chrome()
        
self
.driver.get(<a rel
=
"external nofollow"
href
=
"https://sahitest.com/demo/"
>https:
/
/
sahitest.com
/
demo
/
<
/
a>) 
    
def
test_alert(
self
):
        
#点页面上的Alert Test
        
self
.driver.find_element_by_xpath(
"/html/body/table/tbody/tr/td[3]/a[1]"
).click()
        
#鼠标点击页面中“Click For Alert”按钮
        
self
.driver.find_element_by_name(
"b1"
).click()
         
wait 
=
WebDriverWait(
self
.driver,
2
)
        
#等待并判断警告框是否存在
        
wait.until(ec.alert_is_present())
        
#切换到alert页面
        
alert 
=
self
.driver.switch_to.alert
        
#获取并打印警告框中文本
        
print
(alert.text)
        
#点弹出警告框中的确定
        
alert.accept()
        
self
.driver.quit() 
    
def
test_confirm(
self
):
        
#点击Confirm Page链接打开页面
        
self
.driver.find_element_by_xpath(
"/html/body/table/tbody/tr/td[3]/a[2]"
).click()
        
#点击Click For Confirm按钮,弹出确认提示框
        
self
.driver.find_element_by_name(
"b1"
).click()
        
#切换到警告框
        
confirm
=
self
.driver.switch_to.alert
        
#获取警告框提示信息并打印
        
print
(confirm.text)
        
#点确定
        
# confirm.accept()
        
sleep(
2
)
        
#点取消
        
confirm.dismiss()
        
sleep(
2
)
        
self
.driver.quit()
    
def
test_prompt(
self
):
        
# 点击Prompt Page链接打开页面
        
self
.driver.find_element_by_xpath(
"/html/body/table/tbody/tr/td[3]/a[3]"
).click()
        
#点击Click For Prompt按钮,弹出确认提示框
        
self
.driver.find_element_by_name(
"b1"
).click()
        
sleep(
2
)
        
#切换到提示框
        
prompt 
=
self
.driver.switch_to.alert
        
#获取提示框中文本并打印
        
print
(prompt.text)
        
#提示框中输入文本test prompt
        
prompt.send_keys(
"test prompt"
)
        
# 点确定
        
prompt.accept()
        
sleep(
2
)
        
#点取消
        
# prompt.dismiss()
        
self
.driver.quit()
​现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:485187702【暗号:csdn11】

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走! 希望能帮助到你!【100%无套路免费领取】


本文转载自: https://blog.csdn.net/Xsk215/article/details/136298489
版权归原作者 程序员Baby~ 所有, 如有侵权,请联系我们删除。

“python自动化测试selenium核心技术处理弹框”的评论:

还没有评论