add some wait statements to tests

Signed-off-by: Sebastien Goasguen <runseb@gmail.com>
This commit is contained in:
yichi.lu 2014-02-26 08:47:36 -06:00 committed by Sebastien Goasguen
parent 58a3e75058
commit cefd4ce3be
3 changed files with 65 additions and 72 deletions

View File

@ -76,7 +76,7 @@ class LoginPage(object):
@try_except_decor
def logout(self, directly_logout = False):
self.browser.set_window_size(1200,980)
# self.browser.set_window_size(1200,980)
Shared.wait_for_element(self.browser, 'id', 'user')
# must click this icon options first

View File

@ -1,63 +0,0 @@
from selenium import webdriver
from selenium.common.exceptions import *
from selenium.webdriver.support.ui import WebDriverWait # available since 2.4.0
from selenium.webdriver.common.action_chains import ActionChains as action
from common import Global_Locators
from common.shared import *
class LoginPage(object):
def __init__(self, browser):
self.browser = browser
self.username = ""
self.password = ""
self.language = ""
@try_except_decor
def set_username(self, username):
self.username = username
usernameElement = self.browser.find_element_by_css_selector(Global_Locators.login_username_css)
usernameElement.send_keys(self.username)
@try_except_decor
def set_password(self, password):
self.password = password
passwordElement = self.browser.find_element_by_css_selector(Global_Locators.login_password_css)
passwordElement.send_keys(self.password)
self.pwelement = passwordElement
@try_except_decor
def set_language(self, language):
self.language = language
ele = self.browser.find_element_by_class_name('select-language')
option = ele.find_element_by_xpath("//option[@value='en']")
option.click()
time.sleep(1)
@try_except_decor
def login(self, expect_fail = False):
if self.username == "" or self.password == "":
print "Must set email and password before logging in"
return
loginElement = self.browser.find_element_by_css_selector(Global_Locators.login_submit_css)
loginElement.click()
@try_except_decor
def logout(self):
# must click this icon options first
ele1 = self.browser.find_element_by_xpath("//div[@id='user' and @class='button']/div[@class='icon options']").click()
ele2 = self.browser.find_element_by_xpath("//div[@id='header']/div[@id='user-options']")
ele3 = ele2.find_element_by_link_text('Logout')
ele3.click()
Shared.wait_for_element(self.browser, 'class_name', 'login')
@try_except_decor
def get_error_msg(self, loginpage_url):
if loginpage_url is not None and len(loginpage_url) > 0 and \
(self.browser.current_url.find(loginpage_url) > -1 or loginpage_url.find(self.browser.current_url) > -1):
ele = self.browser.find_element_by_id('std-err')
return ele.text
else:
return ""

View File

@ -58,74 +58,130 @@ class TestCSLoginLogout(unittest.TestCase):
self.loginpage.logout(directly_logout = True)
shared.Shared.wait_for_element(self.browser.browser, 'class_name', 'login', waittime = 300)
def xtest_failure_1(self):
def test_failure_1(self):
self.browser.set_url(smokecfg['cssite'])
self.loginpage = loginpage.LoginPage(self.browser.get_browser())
# wait for at most 5 minutes, in case we have an anoyingly slow server
shared.Shared.wait_for_element(self.browser.get_browser(), 'class_name', 'select-language', waittime = 300)
# language selection must be done before username and password
self.loginpage.set_language(smokecfg['language'])
shared.Shared.wait_for_element(self.browser.get_browser(), 'class_name', 'fields', waittime = 300)
self.loginpage.set_username(smokecfg['badusername'])
self.loginpage.set_password(smokecfg['password'])
self.loginpage.login(expect_fail = True)
def xtest_failure_2(self):
def test_failure_2(self):
self.browser.set_url(smokecfg['cssite'])
self.loginpage = loginpage.LoginPage(self.browser.get_browser())
# wait for at most 5 minutes, in case we have an anoyingly slow server
shared.Shared.wait_for_element(self.browser.get_browser(), 'class_name', 'select-language', waittime = 300)
# language selection must be done before username and password
self.loginpage.set_language(smokecfg['language'])
shared.Shared.wait_for_element(self.browser.get_browser(), 'class_name', 'fields', waittime = 300)
self.loginpage.set_username(smokecfg['username'])
self.loginpage.set_password(smokecfg['badpassword'])
self.loginpage.login(expect_fail = True)
def xtest_failure_3(self):
def test_failure_3(self):
self.browser.set_url(smokecfg['cssite'])
self.loginpage = loginpage.LoginPage(self.browser.get_browser())
# wait for at most 5 minutes, in case we have an anoyingly slow server
shared.Shared.wait_for_element(self.browser.get_browser(), 'class_name', 'select-language', waittime = 300)
# language selection must be done before username and password
self.loginpage.set_language(smokecfg['language'])
shared.Shared.wait_for_element(self.browser.get_browser(), 'class_name', 'fields', waittime = 300)
self.loginpage.set_username(smokecfg['badusername'])
self.loginpage.set_password(smokecfg['badpassword'])
self.loginpage.login(expect_fail = True)
def xtest_failure_4(self):
def test_failure_4(self):
self.browser.set_url(smokecfg['cssite'])
self.loginpage = loginpage.LoginPage(self.browser.get_browser())
# wait for at most 5 minutes, in case we have an anoyingly slow server
shared.Shared.wait_for_element(self.browser.get_browser(), 'class_name', 'select-language', waittime = 300)
# language selection must be done before username and password
self.loginpage.set_language(smokecfg['language'])
shared.Shared.wait_for_element(self.browser.get_browser(), 'class_name', 'fields', waittime = 300)
self.loginpage.set_username(smokecfg['sqlinjection_1'])
self.loginpage.set_password(smokecfg['password'])
self.loginpage.login(expect_fail = True)
def xtest_failure_5(self):
def test_failure_5(self):
self.browser.set_url(smokecfg['cssite'])
self.loginpage = loginpage.LoginPage(self.browser.get_browser())
# wait for at most 5 minutes, in case we have an anoyingly slow server
shared.Shared.wait_for_element(self.browser.get_browser(), 'class_name', 'select-language', waittime = 300)
# language selection must be done before username and password
self.loginpage.set_language(smokecfg['language'])
shared.Shared.wait_for_element(self.browser.get_browser(), 'class_name', 'fields', waittime = 300)
self.loginpage.set_username(smokecfg['sqlinjection_2'])
self.loginpage.set_password(smokecfg['password'])
self.loginpage.login(expect_fail = True)
def xtest_failure_6(self):
def test_failure_6(self):
self.browser.set_url(smokecfg['cssite'])
self.loginpage = loginpage.LoginPage(self.browser.get_browser())
# wait for at most 5 minutes, in case we have an anoyingly slow server
shared.Shared.wait_for_element(self.browser.get_browser(), 'class_name', 'select-language', waittime = 300)
# language selection must be done before username and password
self.loginpage.set_language(smokecfg['language'])
shared.Shared.wait_for_element(self.browser.get_browser(), 'class_name', 'fields', waittime = 300)
self.loginpage.set_username(smokecfg['sqlinjection_3'])
self.loginpage.set_password(smokecfg['password'])
self.loginpage.login(expect_fail = True)
def xtest_failure_7(self):
def test_failure_7(self):
self.browser.set_url(smokecfg['cssite'])
self.loginpage = loginpage.LoginPage(self.browser.get_browser())
# wait for at most 5 minutes, in case we have an anoyingly slow server
shared.Shared.wait_for_element(self.browser.get_browser(), 'class_name', 'select-language', waittime = 300)
# language selection must be done before username and password
self.loginpage.set_language(smokecfg['language'])
shared.Shared.wait_for_element(self.browser.get_browser(), 'class_name', 'fields', waittime = 300)
self.loginpage.set_username(smokecfg['sqlinjection_4'])
self.loginpage.set_password(smokecfg['password'])
self.loginpage.login(expect_fail = True)
def xtest_failure_8(self):
def test_failure_8(self):
self.browser.set_url(smokecfg['cssite'])
self.loginpage = loginpage.LoginPage(self.browser.get_browser())
# wait for at most 5 minutes, in case we have an anoyingly slow server
shared.Shared.wait_for_element(self.browser.get_browser(), 'class_name', 'select-language', waittime = 300)
# language selection must be done before username and password
self.loginpage.set_language(smokecfg['language'])
shared.Shared.wait_for_element(self.browser.get_browser(), 'class_name', 'fields', waittime = 300)
self.loginpage.set_username(smokecfg['sqlinjection_5'])
self.loginpage.set_password(smokecfg['password'])
self.loginpage.login(expect_fail = True)