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)
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')
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()
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)
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()
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()
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)
def setUp(self): self.driver = browser.start(main.get_env(), main.get_browser()) self.nicol = profiles.Profile(self.driver, 'nicol')
def setUp(self): self.driver = browser.start(main.get_env(), main.get_browser()) self.andrewS = profiles.Profile(self.driver, 'andrewSendmi')
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')
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')
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()
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())
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: