don't stop believing

Selenium으로 Alert 창 처리하기 본문

Testing Automation/Selenium

Selenium으로 Alert 창 처리하기

Tongchun 2018. 11. 1. 11:03

Alert 창 처리에 대해 확인해 보겠습니다.

우선 아래와 같이 html 파일을 만들었습니다.

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
<!DOCTYPE html>
<html>
<script>
function simpleAlert() {
alert("Hello! I am a simple alert box!");
}
function confirmAlert() {
var txt;
var r = confirm("Press a button!\nEither OK or Cancel.\nThe button you pressed will be displayed in the result window.");
if (r == true) {
txt = "You pressed OK!";
} else {
txt = "You pressed Cancel!";
}
document.getElementById("confirmMemo").innerHTML = txt;
}
function promptAlert() {
var person = prompt("Please enter your name", "Harry Potter");
if (person != null) {
document.getElementById("inputMemo").innerHTML = "Hello " + person + "! How are you today?";
}
}
</script>
<body>
<p>Click the button to display a simple alert box.</p>
<button onclick="simpleAlert()" id="simpleAlert">Try it</button>
<p>Click the button to demonstrate line-breaks in a confirm box.</p>
<button onclick="confirmAlert()" id="confirmAlert">Try it</button>
<p id="confirmMemo"></p>
<p>Click the button to demonstrate the prompt box.</p>
<button onclick="promptAlert()" id="promptAlert">Try it</button>
<p id="inputMemo"></p>
</body>
</html>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

실행하면 세개의 Try it 버튼이 있습니다. 




python selenium으로 위 Alert 창을 처리하는 script 입니다.

WebDriver로 Alert 창을 Control하고 싶다면 switch_to.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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
# -*- coding: utf-8 -*-
import time
from selenium import webdriver
# Chrome WebDriver Chrome .
driver = webdriver.Chrome('./../chromedriver')
# pop.html .
driver.get('file:///Users/tongchunkim/Documents/Test_Selenium/alert_pop/pop.html')
time.sleep(2)
# alert .
inputElement = driver.find_element_by_id('simpleAlert')
inputElement.click()
time.sleep(2)
# alert '' .
alert = driver.switch_to.alert
alert.accept()
time.sleep(2)
# alert .
inputElement = driver.find_element_by_id('simpleAlert')
inputElement.click()
time.sleep(2)
# alert .
alert = driver.switch_to.alert
message = alert.text
print("Alert shows following message: "+ message )
time.sleep(2)
# .
alert = driver.switch_to.alert
alert.accept()
time.sleep(2)
# alert .
inputElement = driver.find_element_by_id('confirmAlert')
inputElement.click()
time.sleep(2)
# alert '' .
alert = driver.switch_to.alert
alert.dismiss()
time.sleep(2)
# alert .
inputElement = driver.find_element_by_id('confirmAlert')
inputElement.click()
time.sleep(2)
# alert '' .
alert = driver.switch_to.alert
alert.accept()
time.sleep(2)
# alert .
inputElement = driver.find_element_by_id('promptAlert')
inputElement.click()
time.sleep(2)
# alert '' .
alert = driver.switch_to.alert
alert.dismiss()
time.sleep(2)
# alert .
inputElement = driver.find_element_by_id('promptAlert')
inputElement.click()
time.sleep(2)
# prompt .
alert = driver.switch_to.alert
alert.send_keys('tongchun')
time.sleep(2)
# alert '' .
alert = driver.switch_to.alert
alert.accept()
time.sleep(2)
# .
time.sleep(5)
driver.quit()
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

참고하시기 바랍니다.

Comments