selenium编程02-简单的PO模式登陆163邮箱

古城微笑少年丶 2022-01-12 06:01 205阅读 0赞
  1. from selenium import webdriver
  2. from selenium.webdriver.common.by import By
  3. from time import sleep
  4. class Page():
  5. login_url='https://mail.163.com'
  6. def __init__(self,driver,base_url=login_url):
  7. self.driver=driver
  8. self.base_url=base_url
  9. self.timeout=30
  10. def on_page(self):
  11. return self.driver.current_url==(self.base_url+self.url)
  12. def _open(self,url):
  13. url=self.base_url+url
  14. self.driver.get(url)
  15. sleep(6)
  16. assert self.on_page(),'Did not land on %s' %url
  17. def open(self):
  18. self._open(self.url)
  19. def find_element(self,*loc):
  20. return self.driver.find_element(*loc)
  21. class LoginPage(Page):
  22. url='/'
  23. start_loc=(By.ID,'switchAccountLogin')
  24. if_loc=(By.XPATH,'//iframe[starts-with(@id,"x-URS-iframe")]')
  25. username_loc = (By.NAME, 'email')
  26. password_loc = (By.NAME, 'password')
  27. submit_loc=(By.ID,'dologin')
  28. def start_click(self):
  29. return self.find_element(*self.start_loc).click()
  30. def type_username(self,username):
  31. return self.find_element(*self.username_loc).send_keys(username)
  32. def type_password(self,password):
  33. return self.find_element(*self.password_loc).send_keys(password)
  34. def submit(self):
  35. return self.find_element(*self.submit_loc).click()
  36. def switch_toiframe(self):
  37. If=self.find_element(*self.if_loc)
  38. self.driver.switch_to.frame(If)
  39. def test_user_login(driver,username,password):
  40. login_page=LoginPage(driver)
  41. login_page.open()
  42. login_page.start_click()
  43. sleep(3)
  44. login_page.switch_toiframe()
  45. sleep(3)
  46. login_page.type_username(username)
  47. sleep(3)
  48. login_page.type_password(password)
  49. login_page.submit()
  50. def main():
  51. try:
  52. driver=webdriver.Firefox(executable_path='D:/Program Files/Mozilla Firefox/geckodriver')
  53. username='xueshanfeihu1992'
  54. password='hf13516458506'
  55. test_user_login(driver,username,password)
  56. sleep(4)
  57. finally:
  58. driver.quit()
  59. if __name__=='__main__':
  60. main()

转载于:https://www.cnblogs.com/feihujiushiwo/p/10969080.html

发表评论

表情:
评论列表 (有 0 条评论,205人围观)

还没有评论,来说两句吧...

相关阅读