@@ -31,6 +31,7 @@ def main():
31
31
ide_base_url = ""
32
32
in_test_method = False
33
33
has_unicode = False
34
+ uses_keys = False
34
35
35
36
f = open (webdriver_python_file , 'r' )
36
37
all_code = f .read ()
@@ -147,6 +148,20 @@ def main():
147
148
seleniumbase_lines .append (command )
148
149
continue
149
150
151
+ # Handle .find_element_by_id() + .send_keys(Keys.<KEY>)
152
+ data = re .match (
153
+ '''^(\s*)driver\.find_element_by_id\(\" (\S+)\" \)'''
154
+ '''\.send_keys\(Keys\.([\S]+)\)\s*$''' , line )
155
+ if data :
156
+ uses_keys = True
157
+ whitespace = data .group (1 )
158
+ css_selector = '#%s' % data .group (2 )
159
+ key = 'Keys.%s' % data .group (3 )
160
+ command = '''%sself.send_keys('%s', %s)''' % (
161
+ whitespace , css_selector , key )
162
+ seleniumbase_lines .append (command )
163
+ continue
164
+
150
165
# Handle .find_element_by_name() + .click()
151
166
data = re .match (
152
167
'''^(\s*)driver\.find_element_by_name\(\" (\S+)\" \)'''
@@ -171,6 +186,20 @@ def main():
171
186
seleniumbase_lines .append (command )
172
187
continue
173
188
189
+ # Handle .find_element_by_name() + .send_keys(Keys.<KEY>)
190
+ data = re .match (
191
+ '''^(\s*)driver\.find_element_by_name\(\" (\S+)\" \)'''
192
+ '''\.send_keys\(Keys\.([\S]+)\)\s*$''' , line )
193
+ if data :
194
+ uses_keys = True
195
+ whitespace = data .group (1 )
196
+ css_selector = '[name="%s"]' % data .group (2 )
197
+ key = 'Keys.%s' % data .group (3 )
198
+ command = '''%sself.send_keys('%s', %s)''' % (
199
+ whitespace , css_selector , key )
200
+ seleniumbase_lines .append (command )
201
+ continue
202
+
174
203
# Handle .find_element_by_css_selector() + .click()
175
204
data = re .match (
176
205
'''^(\s*)driver\.find_element_by_css_selector\(\" ([\S\s]+)\" \)'''
@@ -199,6 +228,22 @@ def main():
199
228
seleniumbase_lines .append (command )
200
229
continue
201
230
231
+ # Handle .find_element_by_css_selector() + .send_keys(Keys.<KEY>)
232
+ data = re .match (
233
+ '''^(\s*)driver\.find_element_by_css_selector\(\" ([\S\s]+)\" \)'''
234
+ '''\.send_keys\(Keys\.([\S]+)\)\s*$''' , line )
235
+ if data :
236
+ uses_keys = True
237
+ whitespace = data .group (1 )
238
+ css_selector = '%s' % data .group (2 )
239
+ key = 'Keys.%s' % data .group (3 )
240
+ command = '''%sself.send_keys('%s', %s)''' % (
241
+ whitespace , css_selector , key )
242
+ if command .count ('\\ "' ) == command .count ('"' ):
243
+ command = command .replace ('\\ "' , '"' )
244
+ seleniumbase_lines .append (command )
245
+ continue
246
+
202
247
# Handle .find_element_by_xpath() + .send_keys()
203
248
data = re .match (
204
249
'''^(\s*)driver\.find_element_by_xpath\(\" ([\S\s]+)\" \)'''
@@ -214,6 +259,22 @@ def main():
214
259
seleniumbase_lines .append (command )
215
260
continue
216
261
262
+ # Handle .find_element_by_xpath() + .send_keys(Keys.<KEY>)
263
+ data = re .match (
264
+ '''^(\s*)driver\.find_element_by_xpath\(\" ([\S\s]+)\" \)'''
265
+ '''\.send_keys\(Keys\.([\S]+)\)\s*$''' , line )
266
+ if data :
267
+ uses_keys = True
268
+ whitespace = data .group (1 )
269
+ css_selector = '%s' % data .group (2 )
270
+ key = 'Keys.%s' % data .group (3 )
271
+ command = '''%sself.send_keys('%s', %s)''' % (
272
+ whitespace , css_selector , key )
273
+ if command .count ('\\ "' ) == command .count ('"' ):
274
+ command = command .replace ('\\ "' , '"' )
275
+ seleniumbase_lines .append (command )
276
+ continue
277
+
217
278
# Handle Select / by_css_selector() / select_by_visible_text()
218
279
data = re .match (
219
280
'''^(\s*)Select\(driver\.find_element_by_css_selector\('''
@@ -478,6 +539,9 @@ def main():
478
539
seleniumbase_code = ""
479
540
if has_unicode :
480
541
seleniumbase_code = "# -*- coding: utf-8 -*-\n "
542
+ if uses_keys :
543
+ seleniumbase_code += (
544
+ "from selenium.webdriver.common.keys import Keys\n " )
481
545
for line in seleniumbase_lines :
482
546
seleniumbase_code += line
483
547
seleniumbase_code += "\n "
@@ -489,7 +553,7 @@ def main():
489
553
out_file = codecs .open (converted_file_name , "w+" )
490
554
out_file .writelines (seleniumbase_code )
491
555
out_file .close ()
492
- print ('>>> "%s" successfully created from %s \n ' % (
556
+ print ('\n >>> [%s] was created from [%s] \n ' % (
493
557
converted_file_name , webdriver_python_file ))
494
558
495
559
0 commit comments