· 5 years ago · Mar 30, 2020, 01:00 AM
1import random
2import time
3from selenium import webdriver
4from selenium.common.exceptions import NoSuchElementException
5
6sleepmultiplier = 3
7
8hexalphabet = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f']
9ID = ''.join(random.choice(hexalphabet) for _ in range(19))
10print("\ttype in new username:")
11username = input() # 'guest' + ID
12password = ID[:5] + 'Xx0!' + ID[5:10]
13email = username.replace(' ', '_') + '@gmail.com'
14
15driver = webdriver.Chrome()
16driver.set_window_size(1920, 1080)
17
18
19def click(driver, xpath):
20 try:
21 driver.find_element_by_xpath(xpath)
22 except NoSuchElementException:
23 time.sleep(.5 + random.random())
24
25
26def createAccount(driver):
27 driver.get('https://pl.grepolis.com/') # driver.get('https://pl0.grepolis.com/invite-2598277-pl87?invitation_id=1117339&invitation_mac=31033d32&ref=player_invite_linkrl')
28
29 user_tbox = driver.find_element_by_xpath('//*[@id="registration_nickname"]')
30 user_tbox.send_keys(username)
31 print("username: " + username)
32
33 pass_tbox = driver.find_element_by_xpath('//*[@id="registration_password"]')
34 pass_tbox.send_keys(password)
35 print('password: ' + password)
36
37 email_tbox = driver.find_element_by_xpath('//*[@id="registration_email"]')
38 email_tbox.send_keys(email)
39
40 rules_chbox = driver.find_element_by_xpath('//*[@id="registration"]/div[4]/label[1]')
41 rules_chbox.click()
42
43 time.sleep(3)
44 # create account
45 driver.find_element_by_xpath('//*[@id="registration_register"]').click()
46
47
48def magic(driver, target):
49 def build():
50 driver.find_element_by_xpath('//*[@id="btn_start_tutorial"]/div[3]').click() # create city
51 time.sleep(sleepmultiplier * .5)
52
53 driver.find_element_by_xpath('//*[@id="ui_box"]/div[25]/div/div[2]').click() # show building buttons
54 time.sleep(sleepmultiplier * .5)
55
56 driver.find_element_by_xpath(
57 '//*[@id="ui_box"]/div[23]/div/div/div[2]/div/div[3]/div[2]/div/div/div[1]').click() # queue wood lvl1
58 time.sleep(sleepmultiplier * 2)
59 driver.find_element_by_xpath('//*[@id="ui_box"]/div[25]/div/div[3]/div[1]/div[1]/div[3]/div[3]').click()
60
61 driver.find_element_by_xpath(
62 '//*[@id="ui_box"]/div[23]/div/div/div[2]/div/div[6]/div[2]/div/div/div[1]').click() # queue farm lvl2
63 time.sleep(sleepmultiplier * 2)
64 driver.find_element_by_xpath('//*[@id="ui_box"]/div[25]/div/div[3]/div[1]/div[1]/div[3]/div[3]').click()
65
66 driver.find_element_by_xpath(
67 '//*[@id="ui_box"]/div[23]/div/div/div[2]/div/div[3]/div[2]/div/div/div[1]').click() # queue wood lvl2
68 time.sleep(sleepmultiplier * 2)
69 driver.find_element_by_xpath('//*[@id="ui_box"]/div[25]/div/div[3]/div[1]/div[1]/div[3]/div[3]').click()
70
71 driver.find_element_by_xpath(
72 '//*[@id="ui_box"]/div[23]/div/div/div[2]/div/div[4]/div[2]/div/div/div[1]').click() # queue stone lvl1
73 time.sleep(sleepmultiplier * 2)
74 driver.find_element_by_xpath('//*[@id="ui_box"]/div[25]/div/div[3]/div[1]/div[1]/div[3]/div[3]').click()
75
76 driver.find_element_by_xpath(
77 '//*[@id="ui_box"]/div[23]/div/div/div[2]/div/div[5]/div[2]/div/div/div[1]').click() # queue silver lvl1
78 time.sleep(sleepmultiplier * 2)
79 driver.find_element_by_xpath('//*[@id="ui_box"]/div[25]/div/div[3]/div[1]/div[1]/div[3]/div[3]').click()
80
81 driver.find_element_by_xpath(
82 '//*[@id="ui_box"]/div[23]/div/div/div[2]/div/div[1]/div[2]/div/div/div[1]').click() # queue senate lvl2
83 time.sleep(sleepmultiplier * 2)
84 driver.find_element_by_xpath('//*[@id="ui_box"]/div[25]/div/div[3]/div[1]/div[1]/div[3]/div[3]').click()
85
86 driver.find_element_by_xpath(
87 '//*[@id="ui_box"]/div[23]/div/div/div[2]/div/div[4]/div[2]/div/div/div[1]').click() # queue stone lvl2
88 time.sleep(sleepmultiplier * 2 + 6)
89 driver.find_element_by_xpath('//*[@id="ui_box"]/div[25]/div/div[3]/div[1]/div[1]/div[3]/div[3]').click()
90
91 driver.find_element_by_xpath(
92 '//*[@id="ui_box"]/div[23]/div/div/div[2]/div/div[7]/div[2]/div/div/div[1]').click() # queue farm lvl3
93 time.sleep(sleepmultiplier * 2)
94 driver.find_element_by_xpath('//*[@id="ui_box"]/div[25]/div/div[3]/div[1]/div[1]/div[3]/div[3]').click()##
95
96 driver.find_element_by_xpath('//*[@id="ui_box"]/div[23]/div/div/div[2]/div/div[7]/div[2]/div/div/div[1]').click() # queue storage lvl2
97 time.sleep(sleepmultiplier * 2)
98 driver.find_element_by_xpath('//*[@id="ui_box"]/div[25]/div/div[3]/div[1]/div[1]/div[3]/div[3]').click()
99
100 driver.find_element_by_xpath(
101 '//*[@id="ui_box"]/div[23]/div/div/div[2]/div/div[6]/div[2]/div/div/div[1]').click() # queue barracks lvl1
102 time.sleep(sleepmultiplier * 2)
103 driver.find_element_by_xpath('//*[@id="ui_box"]/div[25]/div/div[3]/div[1]/div[1]/div[3]/div[3]').click()
104
105 driver.find_element_by_xpath(
106 '//*[@id="ui_box"]/div[23]/div/div/div[2]/div/div[9]/div[2]/div/div/div[1]').click() # queue temple lvl1
107 time.sleep(sleepmultiplier * 2)
108 driver.find_element_by_xpath('//*[@id="ui_box"]/div[25]/div/div[3]/div[1]/div[1]/div[3]/div[3]').click()
109
110 def chooseGod():
111 driver.find_element_by_xpath('//*[@id="ui_box"]/div[12]/div[3]/div/div[2]').click() # open spell window
112 driver.find_element_by_xpath('//*[@id="ui_box"]/div[12]/div[1]').click() # open temple
113 time.sleep(sleepmultiplier * 1)
114 driver.find_element_by_xpath('//*[@id="temple_hera"]').click() # click hera
115 driver.find_element_by_xpath('//*[@id="temple_button"]/div').click() # worship hera
116 # driver.find_element_by_xpath('//*[@id="window_c929"]/div[8]/div[3]/div[3]').click() # close temple
117
118 def cast():
119 driver.find_element_by_xpath('//*[@id="ui_box"]/div[4]/div[3]/div[1]/ul/li[6]').click() # open rankings
120 time.sleep(sleepmultiplier * 1)
121 driver.find_element_by_xpath('//*[@id="player_name"]').send_keys(target) # print username
122 time.sleep(sleepmultiplier * .5)
123 driver.find_element_by_xpath('//*[@id="ranking_search"]/a[2]').click() # search
124 time.sleep(sleepmultiplier * 1)
125 driver.find_element_by_xpath('//*[@id="ranking_inner"]/tr[2]/td[2]').click() # click player
126 time.sleep(sleepmultiplier * .5)
127 driver.find_element_by_xpath('//*[@id="player_towns"]/div/ul/li[3]/a').click() # click town
128 time.sleep(sleepmultiplier * 1)
129 driver.find_element_by_xpath('//*[@id="god"]').click() # click cast spell
130
131 for _ in range(20):
132 driver.find_element_by_xpath('//*[@id="gpwnd_1002"]/div/div[2]/div[4]/div[4]/div[1]').click()
133 time.sleep(sleepmultiplier * .2)
134
135 def questsPartone():
136 driver.find_element_by_xpath('//*[@id="questlog"]/div[1]').click() # enter quest log
137 time.sleep(sleepmultiplier * 1.5)
138 driver.find_element_by_xpath('')
139
140 build()
141 time.sleep(sleepmultiplier * 2)
142 chooseGod()
143 time.sleep(sleepmultiplier * .2)
144 print('enter when ready for czarowanko')
145 input()
146 cast()
147
148 print('enter when ready for rekrutacja')
149 return
150 input()
151
152 driver.find_element_by_xpath('//*[@id="unit_order_tab_godsent"]/div').click() # wyslannik
153 driver.find_element_by_xpath('//*[@id="unit_order_input"]').clear()
154 driver.find_element_by_xpath('//*[@id="unit_order_input"]').send_keys('1') # wprowadza jeden
155 driver.find_element_by_xpath('//*[@id="unit_order_confirm"]').click() # rekrutuje
156 driver.find_element_by_xpath('//*[@id="unit_order_input"]').clear()
157 driver.find_element_by_xpath('//*[@id="unit_order_input"]').send_keys('1') # wprowadza jeden
158 driver.find_element_by_xpath('//*[@id="unit_order_confirm"]').click() # rekrutuje
159 # driver.find_element_by_xpath('/html/body/div[14]/div[1]/a[1]').click() # zamyka koszary
160
161 # # open quest log
162 # questlog = driver.find_element_by_xpath('//*[@id="questlog"]/div[1]')
163 # questlog.click()
164 #
165 # # complete quests
166 # driver.find_element_by_xpath('').click() # quest wood lvl1
167 # time.sleep(sleepmultiplier * .5)
168 # driver.find_element_by_xpath('//*[@id="quest_inspector"]/div[2]/div[5]/div[1]').click() # quest stone lvl1
169 # time.sleep(sleepmultiplier * .5)
170 # driver.find_element_by_xpath('//*[@id="quest_inspector"]/div[2]/div[5]/div[1]').click() # quest farm lvl2
171 #
172 # print("next: close qlog")
173 # input()#DEBUG
174 # # close quest log
175 # driver.find_element_by_xpath('// *[ @ id = "window_c1384"] / div[8] / div[3] / div[3]').click() #
176 # print("next: open map")
177 # input()#DEBUG
178 # # open map
179 # driver.find_element_by_xpath(
180 # '//*[@id="ui_box"]/div[8]/div[1]/div[1]/div[1]/div').click() ##other option: //*[@id="ui_box"]/div[8]/div[1]/div[1]/div[1] # go to map
181 # print("did it work?")
182 # input()#DEBUG
183 # print('DEBUG end, continue writing program')
184 # # oboz bandytow sprawdzic: // *[ @ id = "2597042"]
185
186 ####################
187 # driver.find_element_by_xpath('').click() #
188 # time.sleep(sleepmultiplier * .5)
189 # driver.find_element_by_xpath('').click() #
190 # time.sleep(sleepmultiplier * .5)
191 # driver.find_element_by_xpath('').click() #
192 # time.sleep(sleepmultiplier * .5)
193 # driver.find_element_by_xpath('').click() #
194 # time.sleep(sleepmultiplier * .5)
195 # driver.find_element_by_xpath('').click() #
196 # time.sleep(sleepmultiplier * .5)
197
198createAccount(driver)
199input()
200magic(driver, target)