Advertisement
Guest User

Untitled

a guest
Feb 6th, 2016
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.01 KB | None | 0 0
  1. coding: utf-8
  2.  
  3. """
  4. Drupal サイトでユーザを登録するためのスクリプト
  5.  
  6. 必要なもの
  7. - selenium: `pip install selenium`
  8. """
  9.  
  10. import sys
  11.  
  12. from selenium import webdriver
  13. from selenium.webdriver.common.keys import Keys
  14.  
  15.  
  16. # 定数
  17. URL_BASE = 'ここに対象サイトのフロントページ URL を入力します'
  18. PATH_REGISTER = URL_BASE + '/user/register'
  19. USER_NAME = 'hayato{}'
  20. USER_PASSWORD = 'hayato_password_{}'
  21. USER_ADDRESS = 'mygmail+{}@gmail.com'
  22.  
  23.  
  24. def register_new_user(number, browser):
  25. """登録ページを開いて登録する
  26.  
  27. number: str
  28. browser: selenuim.webdriver
  29. """
  30. user_name = USER_NAME.format(number)
  31. user_password = USER_PASSWORD.format(number)
  32. user_address = USER_ADDRESS.format(number)
  33. print('Creating a user: {}'.format(user_name))
  34.  
  35. browser.get(PATH_REGISTER)
  36.  
  37. id_and_texts = {
  38. 'edit-name': user_name,
  39. 'edit-mail': user_address,
  40. 'edit-pass-pass1': user_password,
  41. 'edit-pass-pass2': user_password,
  42. }
  43.  
  44. for id, text in id_and_texts.items():
  45. elem = browser.find_element_by_id(id)
  46. elem.send_keys(text)
  47.  
  48. elem = browser.find_element_by_id('edit-submit')
  49. elem.click()
  50.  
  51.  
  52. def get_argv():
  53. """コマンドライン引数の数をチェックして末尾のものを取得する
  54. """
  55. argv = sys.argv
  56.  
  57. if len(argv) != 2:
  58. print('Usage: python this_script_name.py [additional_user_name]')
  59. exit()
  60.  
  61. return argv[-1]
  62.  
  63.  
  64. def check_url_base():
  65. """BASE_URL をチェックする
  66.  
  67. セットされていなければ終了する
  68. """
  69. if not URL_BASE:
  70. print('URL_BASE is empty. Please input this before running.')
  71. exit()
  72.  
  73.  
  74. if __name__ == '__main__':
  75. # BASE_URL をチェックする
  76. check_url_base()
  77.  
  78. # コマンドラインからユーザ名の一部を取得する
  79. additional_user_name = get_argv()
  80.  
  81. # ブラウザを開いてユーザを登録する
  82. browser = webdriver.Firefox()
  83. register_new_user(additional_user_name, browser)
  84.  
  85. browser.quit()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement