forked from qxf2/selenium-beginners
-
Notifications
You must be signed in to change notification settings - Fork 0
/
11_Consolidated_Test.py
96 lines (81 loc) · 3 KB
/
11_Consolidated_Test.py
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
91
92
93
94
95
96
"""
Selenium script that performs several common actions like:
click button, select dropdown, enable checkbox, set text, get text from table
DISCLAIMER: This code is aimed at Selenium BEGINNERS
For more advanced tutorials and to learn how Qxf2 writes GUI automation, please visit our:
a) Our GUI automation guides: http://qxf2.com/gui-automation-diy
b) Other GitHub repos: https://github.com/qxf2
AUTHOR: Avinash Shetty
Contact: avinash@qxf2.com
SCOPE:
1) Launch Firefox driver
2) Navigate to Qxf2 Tutorial page
3) Print the contents of the table
4) Fill all the text fields
5) Select Dropdown option
6) Enable the checkbox
7) Take a screenshot
8) Click on Submit button
9) Close the browser
"""
import time
from selenium import webdriver
# Create an instance of Firefox WebDriver
driver = webdriver.Firefox()
# Maximize the browser window
driver.maximize_window()
# Navigate to Qxf2 Tutorial page
driver.get("http://qxf2.com/selenium-tutorial-main")
# Find the Example table element in the page
table = driver.find_element_by_xpath("//table[@name='Example Table']")
# Find no of rows in the table by getting the tr elements in the table
# Using find_elements_by_xpath method
rows = table.find_elements_by_xpath("//tbody/descendant::tr")
# Create a list to store the text
result_data = []
# Go to each row and get the no of columns and the navigate to column
# Then get the text from each column
for i in xrange(0,len(rows)):
# Find no of columns by getting the td elements in each row
cols = rows[i].find_elements_by_tag_name('td')
cols_data = []
for j in xrange(0,len(cols)):
# Get the text of each field
cols_data.append(cols[j].text.encode('utf-8'))
result_data.append(cols_data)
# Print the result set
print result_data
# Find the name field using xpath with id
name = driver.find_element_by_xpath("//input[@id='name']")
# Send text to the name element using send_keys method
name.send_keys('Avinash')
# Find the email field using xpath without id
email = driver.find_element_by_xpath("//input[@name='email']")
email.send_keys('avinash@qxf2.com')
# Find the phone no field using id
phone = driver.find_element_by_id('phone')
phone.send_keys('9999999999')
# Set a dropdown
driver.find_element_by_xpath("//button[@data-toggle='dropdown']").click()
time.sleep(1)
# Find the xpath of particular option and click on it
driver.find_element_by_xpath("//a[text()='Male']").click()
# Set a checkbox
checkbox = driver.find_element_by_xpath("//input[@type='checkbox']")
checkbox.click()
# Take screenshot
driver.save_screenshot('Qxf2_Tutorial.png')
# Identify the xpath for Click me button and click on it
button = driver.find_element_by_xpath("//button[text()='Click me!']")
button.click()
# Pause the script for 3 sec
time.sleep(3)
# Verify user is taken to Qxf2 tutorial redirect url
if (driver.current_url== 'http://qxf2.com/selenium-tutorial-redirect'):
print "Success"
else:
print "Failure"
# Pause the script for 3 sec
time.sleep(3)
# Close the browser
driver.close()