Ejemplo n.º 1
0
 def setUp(self):
     self.driver = browser.start(main.get_env(), main.get_browser())
     self.nicol = profiles.Profile(self.driver, 'nicol')
     self.faker = profiles.Profile(self.driver, 'faker')
     self.tester = profiles.Profile(self.driver, 'tester')
     self.fire = profiles.Profile(self.driver, 'fire')
     self.WDWait = WebDriverWait(self.driver, 10)
Ejemplo n.º 2
0
 def setUp(self):
     self.driver = browser.start(main.get_env(), main.get_browser())
     self.nicol = profiles.Profile(self.driver, 'nicol')
     self.patrick = profiles.Profile(self.driver, 'patrick')
     self.krabs = profiles.Profile(self.driver, 'krabs')
     self.squid = profiles.Profile(self.driver, 'squid')
     self.WDWait = WebDriverWait(self.driver, 10)
	def load_agree_checkbox(self):
		if main.is_desktop() and main.get_browser() == 'safari':
			# Safari doesn't like clicking the input element
			labels = self.driver.find_elements_by_tag_name('label')
			self.agree_checkbox = labels[-1]
		else:
			self.agree_checkbox = self.form.find_element_by_id('agreed')
Ejemplo n.º 4
0
def run():
    andrew = profiles.Profile(
        browser.start(main.get_env(), main.get_browser()), 'andrew')

    andrew.login()
    andrew.employee_page.on()

    filters = andrew.employee_page.get_filters()
	def agreed(self):
		# Is agree checkbox selected or not?
		checkbox = self.agree_checkbox
		if main.is_desktop() and main.get_browser() == 'safari':
			checkbox = self.form.find_element_by_id('agreed')
		try:
			return checkbox.is_selected()
		except (StaleElementReferenceException, WebDriverException) as e:
			# Reload page and check again
			self.load()
			checkbox = self.form.find_element_by_id('agreed')
			return checkbox.is_selected()
Ejemplo n.º 6
0
 def toggle_agree(self):
     # agree_checkbox is touchy.
     # Think you need to reload form after clicking checkbox or submitting form
     # (only need to reload form after submission if you toggle checkbox afterwards)
     self.nav.dismiss_keyboard()
     self.scroll_to_bottom()
     selected = self.agreed()
     if main.get_browser() == 'safari':
         self.nav.click_el(self.agree_cont)
     else:
         self.nav.click_el(self.agree_checkbox)
     if selected is self.agreed():
         print('checkbox not altered!')
     time.sleep(.4)
Ejemplo n.º 7
0
 def enter_code(self):
     self.scroll_to_bottom()
     self.code_input.clear()
     self.code_input.send_keys(self.code)
     if main.is_ios():
         self.code_input.send_keys('')
     # no continue button on native app
     if main.is_web():
         # WDW fails on Safari. Not sure why.
         if main.get_browser() == 'safari':
             time.sleep(1)
         else:
             WDW(self.driver, 10).until(
                 EC.element_to_be_clickable(
                     (By.CLASS_NAME, 'primaryButton')))
         self.continue_button.click()
Ejemplo n.º 8
0
	def set_ab_value(self, checkbox_id, value=True):
		# given id of A/B checkbox and True/False, set given option.
		self.open()
		if not self.is_ab_open():
			self.open_ab()
			WDW(self.driver, 10).until(
				EC.presence_of_element_located((By.ID, 'confirmCheck')))

		checkbox = self.get_ab_checkbox(checkbox_id)

		# toggle checkbox if current value doesn't equal desired value
		if checkbox.is_selected() != value:

			#sometimes have click issues because checkbox opacity=0
			# currently have issues on Safari (desktop, maybe mobile)
			# todo: clickFunction
			if main.get_browser() == 'safari':
				script = 'arguments[0].click();'
				self.driver.execute_script(script, checkbox)
			else:
				checkbox.click()
			WDW(self.driver, 10).until(EC.element_to_be_clickable((By.CLASS_NAME, 'logout_ok')))
			self.driver.find_element_by_class_name('logout_ok').click()
			WDW(self.driver, 10).until_not(
				EC.visibility_of_element_located((By.CLASS_NAME, 'logout_ok')))
		else:
			# close A/B popup
			WDW(self.driver, 10).until(EC.element_to_be_clickable((By.CLASS_NAME, 'logout_cancel')))
			self.driver.find_element_by_class_name('logout_cancel').click()
			WDW(self.driver, 10).until_not(
				EC.visibility_of_element_located((By.CLASS_NAME, 'logout_cancel')))

		# Make sure confirmation dialog didn't show back up
		self.clear_confirmation_dialog()

		self.close()
Ejemplo n.º 9
0
 def setUp(self):
     self.driver = browser.start(main.get_env(), main.get_browser())
     self.nicol = profiles.Profile(self.driver, 'nicol')
     self.poli = profiles.Profile(self.driver)
     self.WDWait = WebDriverWait(self.driver, 10)
Ejemplo n.º 10
0
 def setUp(self):
     self.driver = browser.start(main.get_env(), main.get_browser())
     self.nicol = profiles.Profile(self.driver, 'nicol')
Ejemplo n.º 11
0
 def setUp(self):
     self.driver = browser.start(main.get_env(), main.get_browser())
     self.andrewS = profiles.Profile(self.driver, 'andrewSendmi')
Ejemplo n.º 12
0
 def setUp(self):
     self.driver = browser.start(main.get_env(), main.get_browser())
     self.cheeks = profiles.Profile(self.driver, 'cheeks')
     self.lili = profiles.Profile(self.driver, 'lili')
     self.nicol = profiles.Profile(self.driver, 'nicol')
Ejemplo n.º 13
0
 def setUp(self):
     self.driver = browser.start(main.get_env(), main.get_browser())
     self.cheeks = profiles.Profile(self.driver, 'cheeks')
     self.alone6 = profiles.Profile(self.driver, 'alone6')
Ejemplo n.º 14
0
    def test_zero_election(self):
        """ test_profile.py:TestElection.test_zero_election """
        # reset Lili's multiverse election back to 0
        business = 'Multiverse'
        eHome = self.lili.eHome_page
        election_page = self.lili.pay_election_page
        history_page = self.lili.election_history_page
        self.assertTrue(self.lili.login(self.driver), messages.login)

        # make sure lili has non-zero election
        self.assertTrue(eHome.on())
        eHome.setTab('election')
        elections = eHome.get_elections()
        initial_election = elections[business]
        if initial_election == '0.00':
            new_election = "1.00"
            eHome.set_election(business, new_election)
            new_elections = eHome.get_elections()
            self.assertEqual(new_election, new_elections[business])
            eHome.click_save_elections()
            eHome.clear_election_prompt()
            eHome.view_election_history()
            self.assertTrue(history_page.on())
            history_page.header.click_back()
            self.assertTrue(eHome.on('election'))
        eHome.menu.sign_out()

        lobby_page = self.nicol.lobby_page
        pe_page = self.nicol.pending_elections_page

        self.assertTrue(self.nicol.login(self.driver), messages.login)
        self.assertTrue(lobby_page.on())
        if lobby_page.menu.get_current_business() != business:
            lobby_page.menu.select_business(business)
            self.assertTrue(lobby_page.on())
        lobby_page.menu.click_option('pending elections')

        self.assertTrue(pe_page.on())
        pe_page.mark_all_as_processed()
        pe_page.menu.sign_out()

        self.assertTrue(self.lili.login(self.driver), messages.login)

        # Seems like native app saves employeeTab even when you log out
        print('logged in')
        if main.get_browser() == 'native':
            self.assertTrue(eHome.on('election'))
        else:
            self.assertTrue(eHome.on())
            eHome.setTab('election')
        print('on eHome')
        new_election = "0.00"
        eHome.set_election(business, new_election)
        new_elections = eHome.get_elections()
        self.assertEqual(new_election, new_elections[business])
        eHome.click_save_elections()
        eHome.view_election_history()

        # assert change is reflected in lili's election history
        # Loading history page has failed before.
        # Seems to take forever for entries to load.
        self.assertTrue(history_page.on())
        election = history_page.get_election()
        self.assertTrue(election['name'] == business)
        self.assertTrue(election['amount'] == "0.00")
        history_page.header.click_back()

        # election should be pending
        self.assertTrue(eHome.on('election'))
        pending_elections = eHome.get_elections()
        self.assertTrue(pending_elections[business + " pending"])
        eHome.menu.sign_out()

        # Nicol: process election
        self.assertTrue(self.nicol.login(self.driver), messages.login)
        self.assertTrue(lobby_page.on())
        if lobby_page.menu.get_current_business() != business:
            lobby_page.menu.select_business(business)
            self.assertTrue(lobby_page.on())
        lobby_page.menu.click_option('pending elections')

        self.assertTrue(pe_page.on())
        pe_page.mark_all_as_processed()
Ejemplo n.º 15
0
def setUp(self):
    self.driver = browser.start(main.get_env(),main.get_browser())
    self.nicol = profiles.Profile(self.driver,'nicol')
    self.employee = profiles.Profile(self.driver, 'lili')
    self.assertTrue(self.nicol.env_loaded())
Ejemplo n.º 16
0
import json

from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import WebDriverException

from main import get_browser, get_config, get_file, print_log

if __name__ == '__main__':
    """
    用于获取`cookie`
    """
    config = get_config()
    config['headless'] = False
    browser = get_browser(config)
    browser.get("https://passport.jd.com/new/login.aspx")
    try:
        wait = WebDriverWait(browser, 35)
        username = wait.until(EC.presence_of_element_located((By.CLASS_NAME, 'nickname'))).text
        user = {
            "userName": username,
            "cookie": browser.get_cookies()
        }
        config['users'].append(user)
        config['headless'] = True
        json.dump(config, open(get_file("./config.json"), "w"), indent=4, ensure_ascii=False)
        print_log("INFO", "成功添加", username)
    except WebDriverException:
        print_log("ERROR", "添加失败")
    finally: