def enter_mm_tab(self): self.driver.find_element(*self.element.Mymillennium_tab).click() try: assert u"My Millennium" in self.driver.title logger.info("My Millennium redirected link is right") except Exception as e: logger.info("My Millennium redirected link is wrong", format(e))
def enter_offers_tab(self): self.driver.find_element(*self.element.Offers_tab).click() try: assert u"Offers" in self.driver.title logger.info("Offers redirected link is right") except Exception as e: logger.info("Offers redirected link is wrong", format(e))
def click_explore(self): self.driver.find_element(*self.element.explore_offers).click() try: assert u"Asia Hotels Special Offers" in self.driver.title logger.info("Explore offers is right") except Exception as e: logger.info("Explore offers is wrong", format(e))
def login_homepage(self): """点击登录按钮""" try: self.driver.find_elements(*self.element.element_login_icon)[1].click() logger.info("Login overlay open successfully") except Exception as result: logger.warning("%s unknown error happened" % result)
def enter_venues_tab(self): self.driver.find_element(*self.element.Venues_tab).click() try: assert u"Meetings & Events" in self.driver.title logger.info("Venues redirected link is right") except Exception as e: logger.info("Venues redirected link is wrong", format(e))
def book_offer(self): self.driver.find_element(*self.element.booknow_offer_btn).click() time.sleep(2) offer_book_btn = self.driver.find_element( *self.element.offer_book).text logger.info(offer_book_btn) assert offer_book_btn == 'BOOK'
def click_SLAM(self): self.driver.find_element( *self.element.Stay_Like_A_Millionaire_link).click() try: assert u"Stay Like" in self.driver.title logger.info("Stay Like redirected link is right") except Exception as e: logger.info("Stay Like redirected link is wrong", format(e))
def filter_offers(self): self.driver.find_element(*self.element.offer_type).click() time.sleep(3) self.driver.find_element(*self.element.type_select).click() time.sleep(2) offer_type_text = self.driver.find_element( *self.element.offer_type_txt).text logger.info(offer_type_text) assert offer_type_text == 'PAY NOW AND SAVE'
def click_TAC(self): self.driver.find_element( *self.element.Terms_and_Conditions_link).click() try: assert u"Terms and Conditions" in self.driver.title logger.info("Terms and Conditions redirected link is right") except Exception as e: logger.info("Terms and Conditions redirected link is wrong", format(e))
def click_FAQ(self): self.driver.find_element( *self.element.Frequently_Asked_Questions_link).click() try: assert u"Frequently Asked Questions" in self.driver.title logger.info("Frequently Asked Questions redirected link is right") except Exception as e: logger.info("Frequently Asked Questions redirected link is wrong", format(e))
def click_PH(self): self.driver.find_element( *self.element.Participating_Hotels_link).click() try: assert u"Participating Hotels" in self.driver.title logger.info("Participating Hotels redirected link is right") except Exception as e: logger.info("Participating Hotels redirected link is wrong", format(e))
def is_element_visible(self, element): try: the_element = EC.visibility_of_element_located((element)) assert the_element(self.driver) logger.info("%s is displayed" % the_element) return True except Exception as err: print(err) logger.info("element is not displayed") return False
def filter_attendees_type(self): self.driver.find_element(*self.element.attendees_filter).click() time.sleep(3) self.driver.find_element(*self.element.select_attendees_21).click() time.sleep(3) attendees_type_selection = self.driver.find_element( *self.element.attendees_type_txt).text logger.info(attendees_type_selection) assert attendees_type_selection == '21 - 50' logger.info("attendees filter works right")
def test_login_linkedin(self, data): """测试linkedin登录""" try: self.account.login_with_linkedin(data['linkedin_acc'], data['linkedin_pw']) logger.info("Result Success Rate Is 100%") except Exception as result: self.driver.get_screenshot_as_file("./screenshot/linkedin_err.png") logger.info("%s unknown error during login with linkedin" % result) raise
def test_login_google(self, data): """测试google登录""" try: self.account.login_with_google(data['google_acc'], data['google_pw']) logger.info("Result Success Rate Is 100%") except Exception as result: self.driver.get_screenshot_as_file("./screenshot/google_err.png") logger.info("%s unknown error during login with google" % result) raise
def filter_destination(self): self.driver.find_element(*self.element.destination_filter).click() time.sleep(3) self.driver.find_element( *self.element.select_destination_singapore).click() time.sleep(3) des_type_selection = self.driver.find_element( *self.element.destination_type).text logger.info(des_type_selection) assert des_type_selection == 'Singapore' logger.info("destination filter works right")
def test_City(self): """测试city page""" des_name = 'London' try: self.city_test.book_currentdate(des_name) self.city_test.check_city_page(des_name) logger.info("Result Success Rate Is 100%") except Exception as result: self.driver.get_screenshot_as_file( "./screenshot/check_city_page_err.png") logger.info("%s unknown error during checking city page" % result) raise
def filter_event_type(self): self.driver.find_element(*self.element.event_type_filter).click() time.sleep(3) self.driver.find_element( *self.element.select_event_type_Conference).click() time.sleep(3) event_type_selection = self.driver.find_element( *self.element.event_type_txt).text logger.info(event_type_selection) assert event_type_selection == 'Conference' logger.info("event filter works right")
def test_Offers(self): """测试offers跳转""" try: self.offers_test.enter_offers_tab() self.explore_offer_test.click_explore() self.explore_offer_test.filter_offers() self.explore_offer_test.book_offer() logger.info("Offers page totally passed") except Exception as result: self.driver.get_screenshot_as_file("./screenshot/check_offers_page_err.png") logger.info("%s unknown error during checking offers page" % result) raise
def test_MyMillennium(self): """测试my millennium跳转""" try: self.mm_test.enter_mm_tab() self.mm_sublink_test.click_SLAM() self.mm_sublink_test.click_PH() self.mm_sublink_test.click_FAQ() self.mm_sublink_test.click_TAC() logger.info("My Millenium page totally passed") except Exception as result: self.driver.get_screenshot_as_file("./screenshot/check_mm_page_err.png") logger.info("%s unknown error during checking mm page" % result) raise
def test_Venues(self): """测试venues跳转""" try: self.venues_test.enter_venues_tab() self.venues_filter.filter_destination() self.venues_filter.filter_event_type() self.venues_filter.filter_attendees_type() logger.info("Veunues page totally passed") except Exception as result: self.driver.get_screenshot_as_file( "./screenshot/check_venues_page_err.png") logger.info("%s unknown error during checking venues page" % result) raise
def test_Hotels(self): """测试hotels跳转""" try: self.hotels_test.enter_hotels_tab() self.hotels_check.All_region() self.hotels_check.Asia_region() self.hotels_check.Europe_region() self.hotels_check.MiddleEast_region() self.hotels_check.NewZealand_region() self.hotels_check.UniteStates_region() logger.info("Hotels page totally passed") except Exception as result: self.driver.get_screenshot_as_file("./screenshot/check_hotels_page_err.png") logger.info("%s unknown error during checking hotels page" % result) raise
def All_region(self): try: self.driver.find_element(*self.element.All_region).click() time.sleep(2) self.driver.find_element(*self.element.last_All_hotels).click() time.sleep(2) logger.info(self.driver.current_url) self.driver.back() js = "var action=document.documentElement.scrollTop=0" self.driver.execute_script(js) time.sleep(3) return True except: logger.info("can't display all region") return False
def NewZealand_region(self): try: self.driver.find_element(*self.element.NewZealand_region).click() time.sleep(2) self.driver.find_element( *self.element.last_NewZealand_hotel).click() time.sleep(2) logger.info(self.driver.current_url) self.driver.back() js = "var action=document.documentElement.scrollTop=0" self.driver.execute_script(js) time.sleep(2) return True except: logger.info("can't display New Zealand region")
def UniteStates_region(self): try: self.driver.find_element(*self.element.UnitedStates_region).click() time.sleep(2) self.driver.find_element( *self.element.last_UniteStates_hotel).click() time.sleep(2) logger.info(self.driver.current_url) time.sleep(2) self.driver.back() js = "var action=document.documentElement.scrollTop=0" self.driver.execute_script(js) time.sleep(2) return True except: logger.info("can't display Unite States region") return False
def check_city_page(self,des_name): try: assert u"Hotels in %s" % des_name in self.driver.title logger.info("City page redirected link is right") except Exception as e: logger.info("City page redirected link is wrong", format(e)) self.driver.find_element(*self.element.explore_city).click() time.sleep(2) try: assert u"Hotels In London UK" in self.driver.title logger.info("Explore City page redirected link is right") except Exception as e: logger.info("Explore City page redirected link is wrong", format(e))
def book_currentdate(self, des_name): self.driver.find_element(*self.element.destination).click() logger.info("click destination field") time.sleep(3) # des_name = 'London' self.driver.find_element(*self.element.destination).send_keys(des_name) logger.info("input destination name") time.sleep(2) self.driver.find_element(*self.element.city_select).click() logger.info("select the hotel/city in search result list") time.sleep(2) self.driver.find_element(*self.element.book_btn).click() logger.info("click the Book Now button") time.sleep(2)
def login_with_google(self,google_acc,google_pw): """gmail登录""" self.google_acc = google_acc self.google_pw = google_pw self.login_homepage() self.driver.find_element(*self.element.element_google).click() logger.info("click google login button") print('-' * 20 + 'click google sign in' + '-' * 20) WebDriverWait(self.driver, 10).until(EC.visibility_of_all_elements_located((self.element.element_input_gooogleacc))) self.driver.find_element(*self.element.element_input_gooogleacc).send_keys(google_acc) print('-' * 20 + 'input google account' + '-' * 20) self.driver.find_elements(*self.element.element_continue)[0].click() print('-' * 20 + 'click next step' + '-' * 20) try: WebDriverWait(self.driver, 10).until(EC.visibility_of_element_located((self.element.element_input_googlepw))) except Exception as error: print('-' * 20 + "Failed redirect to google pass word page" + '-' * 20 + '%s' % error) self.driver.find_element(*self.element.element_input_googlepw).send_keys(google_pw) print('-' * 20 + 'input google password' + '-' * 20) self.driver.find_elements(*self.element.element_continue)[0].click() print('-' * 20 + 'click next step' + '-' * 20) try: WebDriverWait(self.driver,10).until(EC.visibility_of_all_elements_located((self.element.login_status))) logger.info("login successfully") print('-' * 20 + 'google login successfully' + '-' * 20) except Exception as result: logger.warning("%s error happened" % result) finally: logger.info(self.driver.current_url)
def login_with_facebook(self, face_email, face_pw): """facebook登录""" self.face_email = face_email self.face_pw = face_pw self.login_homepage() try: self.driver.find_element(*self.element.element_facebook).click() logger.info("click the facebook login button") print('-'*20+'click faecbook sign in'+'-' * 20) self.driver.find_element(*self.element.element_facebook_email).send_keys(self.face_email) logger.info("input facebook acccount") print('-' * 20 + 'input facebook email' + '-' * 20) self.driver.find_element(*self.element.element_facebook_password).send_keys(self.face_pw) logger.info("input facebook password") print('-' * 20 + 'input facebook password' + '-' * 20) self.driver.find_element(*self.element.element_login_button).click() logger.info("click facebbook login button") print('-' * 20 + 'click sign in' + '-' * 20) WebDriverWait(self.driver,10).until(EC.visibility_of_all_elements_located((self.element.login_status))) logger.info("login successfully") print('-' * 20 + 'facebook login successfully' + '-' * 20) except Exception as result: logger.warning("%s error happened" % result) finally: logger.info(self.driver.current_url)
def login_with_linkedin(self, link_acc, link_pw): """linkedin登录""" self.linkedin_acc = link_acc self.linkedin_pw = link_pw self.login_homepage() try: self.driver.find_element(*self.element.element_LinkedIn).click() logger.info("click linkedin login button") print('-'*20+'click linkedin sign in'+'-' * 20) self.driver.find_element(*self.element.element_linkedin_email).send_keys(self.linkedin_acc) logger.info("input linkedin account") print('-' * 20 + 'input linkedin account' + '-' * 20) self.driver.find_element(*self.element.element_linkedin_pwd).send_keys(self.linkedin_pw) logger.info("input linkedin password") print('-' * 20 + 'input linkedin password' + '-' * 20) self.driver.find_element(*self.element.element_click_linkedin_signin).click() logger.info("click linkedin sign in button") print('-' * 20 + 'click sign in' + '-' * 20) WebDriverWait(self.driver,10).until(EC.visibility_of_all_elements_located((self.element.login_status))) logger.info("login successfully") print('-' * 20 + 'linkedin login successfully' + '-' * 20) except Exception as result: logger.warning("%s error happened" % result) finally: logger.info(self.driver.current_url) time.sleep(2)