class RegisterUser_test(LiveServerTestCase): def setUp(self): self.sel = WebDriver() def tearDown(self): self.sel.quit() def testRegister(self): self.doReg(self) @staticmethod def doReg(self): self.sel.get(self.live_server_url) signUp = WebDriverWait(self.sel, 2).until( EC.element_to_be_clickable((By.ID, "signUp"))) # signUp = self.sel.find_element_by_id('signUp') signUp.click() self.sel.save_screenshot("register01.png") emailBox = self.sel.find_element_by_id('email') firstNameBox = self.sel.find_element_by_id('name') lastNameBox = self.sel.find_element_by_id('username') passwordBox = self.sel.find_element_by_id('password') passwordConfirmBox = self.sel.find_element_by_id('password_c') submitBtn = self.sel.find_element_by_id('regUserSubmit') emailBox.send_keys('*****@*****.**') firstNameBox.send_keys('John') lastNameBox.send_keys('Doe') passwordBox.send_keys('pw') passwordConfirmBox.send_keys('pw') self.sel.save_screenshot("register02.png") submitBtn.click() #self.sel.save_screenshot("IHaveTo.png") try: dropData = WebDriverWait(self.sel, 2).until( EC.visibility_of_element_located((By.ID, 'dropData'))) self.sel.save_screenshot("register03.png") dropData.click() logout = WebDriverWait(self.sel, 2).until( EC.element_to_be_clickable((By.ID, 'navLogout'))) AppFuncs.doLogout(self) except: AppFuncs.doLogout(self) self.assertTrue( False, 'Reg failed. Unable to find logout element.')
def get_hotel(driver: WebDriver, city: str, n: int) -> None: driver.get('%s/%s/p%d' % (ROOT_URL, city, n)) driver.implicitly_wait(1) hotel_list = driver.find_element_by_id('hotel_list') hotels = hotel_list.find_elements_by_class_name('searchresult_list') for hotel in hotels: hid = str(hotel.get_attribute('id')) if not re.match(r'^\d+$', hid): continue name = driver.find_element_by_xpath('//*[@id="%s"]/ul/li[2]/h2/a' % hid).get_attribute('title') try: points = hotel.find_element_by_class_name('hotel_value').text except Exception: continue start_price = hotel.find_element_by_class_name('J_price_lowList').text about_points = hotel.find_element_by_class_name('hotel_judgement').text points_count = RE_COMMENT.search(about_points).group() logging.info('%s\n%s\n%s\n%s\n%s\n%s\n%s\n' % (city, hid, name, n, points, start_price, points_count)) if Hotel.objects.filter(hid=hid).count() == 0: Hotel.objects.create(city=city, hid=hid, name=name, page=n, points=points, start_price=start_price, points_count=points_count)
def test_that_home_view_shows_devices_grid(self): url = '%s%s' % (self.live_server_url, reverse('devices')) driver = WebDriver() driver.get(url) waiter = WebDriverWait(driver, WEBDRIVER_MAX_TIMEOUT) waiter.until(EC.presence_of_all_elements_located((By.CLASS_NAME, 'device'))) device_grid = driver.find_element_by_id('device-grid') devices = device_grid.find_elements_by_class_name('device') self.assertEqual(len(MOCK_DEVICES), len(devices)) for device in MOCK_DEVICES: self.assertIn(device.ip_address, device_grid.text) self.assertIn(device.mac_address, device_grid.text)
from selenium.webdriver.support import expected_conditions as EC # available since 2.26.0 from selenium.webdriver.phantomjs.webdriver import WebDriver # Create a new instance of the Firefox driver driver = WebDriver( executable_path='/opt/phantomjs-2.1.1-linux-x86_64/bin/phantomjs', port=5001) # go to the google home page driver.get("http://www.baidu.com") # the page is ajaxy so the title is originally this: print(driver.title) # find the element that's name attribute is q (the google search box) inputElement = driver.find_element_by_id("kw") # type in the search inputElement.send_keys("cheese!") # submit the form (although google automatically searches now without submitting) inputElement.submit() try: # we have to wait for the page to refresh, the last thing that seems to be updated is the title WebDriverWait(driver, 10).until(EC.title_contains("cheese!")) # You should see "cheese! - Google Search" print(driver.title) print(driver.get_cookies())
class CreateEventHandler_test(LiveServerTestCase): def setUp(self): self.sel = WebDriver() # Create a user and an org self.user = UserData.createUser('a', 'b','c@1', 'pw') theOrg = OrgData.createOrg("theOrg") self.user.org = theOrg self.user.save() self.user = UserData.createUser('d', 'e','f@1', 'pw') self.user.org = theOrg self.user.save() def tearDown(self): self.sel.quit() def testCreateEventHandler(self): self.doCreateEventHandler(self) @staticmethod def doCreateEventHandler(self): AppFuncs.doLogin(self, self.user.email, 'pw') self.sel.save_screenshot("log6.png") dropData = WebDriverWait(self.sel, 2).until( EC.visibility_of_element_located((By.ID, 'eventDrop'))) self.sel.save_screenshot("createHandler01.png") dropData.click() toHandler = WebDriverWait(self.sel, 2).until( EC.element_to_be_clickable((By.ID, "CreateEventHandler"))) self.sel.save_screenshot("createHandler02.png") toHandler.click() createHandler = WebDriverWait(self.sel, 2).until( EC.element_to_be_clickable((By.ID, "createNewHandler"))) self.sel.save_screenshot("createHandler03.png") createHandler.click() # try: userSelect = Select(WebDriverWait(self.sel, 2).until( EC.visibility_of_element_located((By.ID, 'userSelector')))) # userSelect.select_by_value("a b") # this should be "a b", I am not sure my the method above does not work. userSelect.select_by_index(1) handlerTitle = self.sel.find_element_by_id('titleIn') timeAck = self.sel.find_element_by_id('timeForAck') handlerTitle.send_keys('testHandler') timeAck.send_keys('256') addNew = self.sel.find_element_by_id('addUser') self.sel.save_screenshot("createHandler04.png") addNew.click() handlerCreateBtn = WebDriverWait(self.sel, 2).until( EC.element_to_be_clickable((By.ID, "createHierarchy"))) self.sel.save_screenshot("createHandler05.png") handlerCreateBtn.click() successful = WebDriverWait(self.sel, 2).until( EC.visibility_of_element_located((By.ID, 'eventHandlerCreateSuccess'))) self.sel.save_screenshot("createHandler06.png") # except: # dropData = WebDriverWait(self.sel, 2).until( # EC.visibility_of_element_located((By.ID, 'dropData'))) # dropData.click() # AppFuncs.doLogout(self) # self.assertTrue(False, "Cannot find another user or cannot create handler.") dropData = WebDriverWait(self.sel, 2).until( EC.visibility_of_element_located((By.ID, 'dropData'))) dropData.click() self.sel.save_screenshot("log5.png") AppFuncs.doLogout(self)
class AddContactMethod_test(LiveServerTestCase): def setUp(self): self.sel = WebDriver() # Create a user self.user = UserData.createUser('firstName', 'lastName', '*****@*****.**', 'pw') def tearDown(self): self.sel.quit() def testCreateContactMethod(self): self.doCreateContactMethod(self) @staticmethod def doCreateContactMethod(self): AppFuncs.doLogin(self, self.user.email, 'pw') settingsBtn = self.sel.find_element_by_id('settings') settingsBtn.click() self.sel.save_screenshot("createContact01.png") try: #self.sel.save_screenshot("createContact02.png") createBox = WebDriverWait(self.sel, 2).until( EC.visibility_of_element_located((By.ID, 'createNewBtn'))) createNew = self.sel.find_element_by_id('createNewBtn') createNew.click() try: self.sel.save_screenshot("createContact02.png") createBox = WebDriverWait(self.sel, 2).until( EC.visibility_of_element_located((By.ID, 'contactType'))) dropdown = Select(self.sel.find_element_by_id("contactType")) dropdown.select_by_value("sms") contactData = self.sel.find_element_by_id('contactData') contactTitle = self.sel.find_element_by_id('title') contactPriority = self.sel.find_element_by_id('priority') submitBtn = self.sel.find_element_by_id('submitBtnCreate') contactData.send_keys('6262516801') contactTitle.send_keys('cell') contactPriority.send_keys('1') self.sel.save_screenshot("createContact03.png") submitBtn.click() self.sel.save_screenshot("logS.png") dropData = WebDriverWait(self.sel, 2).until( EC.visibility_of_element_located((By.ID, 'dropData'))) dropData.click() self.sel.save_screenshot("createContact04.png") settingsBtn = self.sel.find_element_by_id('settings') settingsBtn.click() try: contactConfirm = WebDriverWait(self.sel, 2).until( EC.visibility_of_element_located((By.ID, 'contact1'))) self.sel.save_screenshot("createContact05.png") dropData = WebDriverWait(self.sel, 2).until( EC.visibility_of_element_located((By.ID, 'dropData'))) dropData.click() AppFuncs.doLogout(self) except: dropData = WebDriverWait(self.sel, 2).until( EC.visibility_of_element_located((By.ID, 'dropData'))) dropData.click() AppFuncs.doLogout(self) self.assertTrue(False, 'Could not find created contact method.') except: dropData = WebDriverWait(self.sel, 2).until( EC.visibility_of_element_located((By.ID, 'dropData'))) dropData.click() AppFuncs.doLogout(self) self.assertTrue(False, 'Could not get into create new contact page') except: dropData = WebDriverWait(self.sel, 2).until( EC.visibility_of_element_located((By.ID, 'dropData'))) dropData.click() AppFuncs.doLogout(self) self.assertTrue(False, 'Could not get into settings page')
class CreateOrg_test(LiveServerTestCase): def setUp(self): self.sel = WebDriver() # Create a user self.user = UserData.createUser('firstName', 'lastName', '*****@*****.**', 'pw') def tearDown(self): self.sel.quit() def testCreateOrg(self): self.doCreateOrg(self) @staticmethod def doCreateOrg(self): AppFuncs.doLogin(self, self.user.email, 'pw') # print 'logged in' settingBtn = self.sel.find_element_by_id('settings') self.sel.save_screenshot("createOrg01.png") settingBtn.click() #self.sel.save_screenshot("log7.png") createNewOrgBtn = WebDriverWait(self.sel, 2).until( EC.visibility_of_element_located((By.ID, 'createNewOrg'))) self.sel.save_screenshot("createOrg02.png") createNewOrgBtn.click() try: # print 'waiting for org box' orgBox = WebDriverWait(self.sel, 2).until( EC.visibility_of_element_located((By.ID, 'inputOrgName'))) # print 'got org box' submitOrgBtn = self.sel.find_element_by_id('submitAssociate') # print 'enter keys' orgBox.send_keys('org1') self.sel.save_screenshot("createOrg03.png") submitOrgBtn.click() try: org = WebDriverWait(self.sel, 2).until( EC.text_to_be_present_in_element((By.ID, 'userOrgName'), 'org1')) self.sel.save_screenshot("createOrg04.png") dropData = WebDriverWait(self.sel, 2).until( EC.visibility_of_element_located((By.ID, 'dropData'))) dropData.click() AppFuncs.doLogout(self) # print 'logout done' except: # problem can arise here AppFuncs.doLogout(self) self.assertTrue( False, 'Unable to associate org.') except: dropData = WebDriverWait(self.sel, 2).until( EC.visibility_of_element_located((By.ID, 'dropData'))) dropData.click() AppFuncs.doLogout(self) self.assertTrue( False, 'Cannnot find orgName Button.')
class RealAssociate_test(LiveServerTestCase): def setUp(self): self.sel = WebDriver() # Create a user and an org self.user = UserData.createUser('firstName', 'lastName','*****@*****.**', 'pw') OrgData.createOrg("theOrg") def tearDown(self): self.sel.quit() def testAssociateOrg(self): self.doRealAssociate(self) @staticmethod def doRealAssociate(self): AppFuncs.doLogin(self, self.user.email, 'pw') #self.sel.save_screenshot("log5.png") associateOrgBtn = self.sel.find_element_by_id('associateBu') self.sel.save_screenshot("associate01.png") associateOrgBtn.click() try: # self.sel.save_screenshot("log5.png") orgBox = WebDriverWait(self.sel, 20).until( EC.visibility_of_element_located((By.ID, 'inputOrgName'))) submitOrgBtn = self.sel.find_element_by_id('submitAssociate') orgBox.send_keys('theOrg') self.sel.save_screenshot("associate02.png") submitOrgBtn.click() try: org = WebDriverWait(self.sel, 20).until( EC.text_to_be_present_in_element((By.ID, 'userOrgName'), 'theOrg')) try: self.sel.save_screenshot("associate03.png") dropData = WebDriverWait(self.sel, 2).until( EC.visibility_of_element_located((By.ID, 'dropData'))) dropData.click() logout = WebDriverWait(self.sel, 20).until( EC.element_to_be_clickable((By.ID, 'navLogout'))) self.sel.save_screenshot("associate04.png") AppFuncs.doLogout(self) # self.sel.save_screenshot("log7.png") except: self.assertTrue( False, 'Login failed. Unable to find logout element.') except: dropData = WebDriverWait(self.sel, 2).until( EC.visibility_of_element_located((By.ID, 'dropData'))) dropData.click() AppFuncs.doLogout(self) self.assertTrue( False, 'Unable to associate org.') except: dropData = WebDriverWait(self.sel, 2).until( EC.visibility_of_element_located((By.ID, 'dropData'))) dropData.click() AppFuncs.doLogout(self) self.assertTrue( False, 'Cannnot find orgName Button.')