@@ -148,9 +148,9 @@ def main():
148
148
'''\.click\(\)\s*$''' , line )
149
149
if data :
150
150
whitespace = data .group (1 )
151
- css_selector = '#%s' % data .group (2 )
152
- css_selector = css_selector .replace ('[' , '\\ [' ).replace (']' , '\\ ]' )
153
- command = '''%sself.click('%s')''' % (whitespace , css_selector )
151
+ selector = '#%s' % data .group (2 )
152
+ selector = selector .replace ('[' , '\\ [' ).replace (']' , '\\ ]' )
153
+ command = '''%sself.click('%s')''' % (whitespace , selector )
154
154
seleniumbase_lines .append (command )
155
155
continue
156
156
@@ -160,11 +160,11 @@ def main():
160
160
'''\.send_keys\(\" ([\S\s]+)\" \)\s*$''' , line )
161
161
if data :
162
162
whitespace = data .group (1 )
163
- css_selector = '#%s' % data .group (2 )
164
- css_selector = css_selector .replace ('[' , '\\ [' ).replace (']' , '\\ ]' )
163
+ selector = '#%s' % data .group (2 )
164
+ selector = selector .replace ('[' , '\\ [' ).replace (']' , '\\ ]' )
165
165
text = data .group (3 )
166
166
command = '''%sself.update_text('%s', '%s')''' % (
167
- whitespace , css_selector , text )
167
+ whitespace , selector , text )
168
168
seleniumbase_lines .append (command )
169
169
continue
170
170
@@ -175,11 +175,11 @@ def main():
175
175
if data :
176
176
uses_keys = True
177
177
whitespace = data .group (1 )
178
- css_selector = '#%s' % data .group (2 )
179
- css_selector = css_selector .replace ('[' , '\\ [' ).replace (']' , '\\ ]' )
178
+ selector = '#%s' % data .group (2 )
179
+ selector = selector .replace ('[' , '\\ [' ).replace (']' , '\\ ]' )
180
180
key = 'Keys.%s' % data .group (3 )
181
181
command = '''%sself.send_keys('%s', %s)''' % (
182
- whitespace , css_selector , key )
182
+ whitespace , selector , key )
183
183
seleniumbase_lines .append (command )
184
184
continue
185
185
@@ -189,8 +189,8 @@ def main():
189
189
'''\.click\(\)\s*$''' , line )
190
190
if data :
191
191
whitespace = data .group (1 )
192
- css_selector = '[name="%s"]' % data .group (2 )
193
- command = '''%sself.click('%s')''' % (whitespace , css_selector )
192
+ selector = '[name="%s"]' % data .group (2 )
193
+ command = '''%sself.click('%s')''' % (whitespace , selector )
194
194
seleniumbase_lines .append (command )
195
195
continue
196
196
@@ -200,10 +200,10 @@ def main():
200
200
'''\.send_keys\(\" ([\S\s]+)\" \)\s*$''' , line )
201
201
if data :
202
202
whitespace = data .group (1 )
203
- css_selector = '[name="%s"]' % data .group (2 )
203
+ selector = '[name="%s"]' % data .group (2 )
204
204
text = data .group (3 )
205
205
command = '''%sself.update_text('%s', '%s')''' % (
206
- whitespace , css_selector , text )
206
+ whitespace , selector , text )
207
207
seleniumbase_lines .append (command )
208
208
continue
209
209
@@ -214,10 +214,10 @@ def main():
214
214
if data :
215
215
uses_keys = True
216
216
whitespace = data .group (1 )
217
- css_selector = '[name="%s"]' % data .group (2 )
217
+ selector = '[name="%s"]' % data .group (2 )
218
218
key = 'Keys.%s' % data .group (3 )
219
219
command = '''%sself.send_keys('%s', %s)''' % (
220
- whitespace , css_selector , key )
220
+ whitespace , selector , key )
221
221
seleniumbase_lines .append (command )
222
222
continue
223
223
@@ -227,8 +227,8 @@ def main():
227
227
'''\.click\(\)\s*$''' , line )
228
228
if data :
229
229
whitespace = data .group (1 )
230
- css_selector = '%s' % data .group (2 )
231
- command = '''%sself.click('%s')''' % (whitespace , css_selector )
230
+ selector = '%s' % data .group (2 )
231
+ command = '''%sself.click('%s')''' % (whitespace , selector )
232
232
if command .count ('\\ "' ) == command .count ('"' ):
233
233
command = command .replace ('\\ "' , '"' )
234
234
seleniumbase_lines .append (command )
@@ -240,10 +240,10 @@ def main():
240
240
'''\.send_keys\(\" ([\S\s]+)\" \)\s*$''' , line )
241
241
if data :
242
242
whitespace = data .group (1 )
243
- css_selector = '%s' % data .group (2 )
243
+ selector = '%s' % data .group (2 )
244
244
text = data .group (3 )
245
245
command = '''%sself.update_text('%s', '%s')''' % (
246
- whitespace , css_selector , text )
246
+ whitespace , selector , text )
247
247
if command .count ('\\ "' ) == command .count ('"' ):
248
248
command = command .replace ('\\ "' , '"' )
249
249
seleniumbase_lines .append (command )
@@ -256,10 +256,10 @@ def main():
256
256
if data :
257
257
uses_keys = True
258
258
whitespace = data .group (1 )
259
- css_selector = '%s' % data .group (2 )
259
+ selector = '%s' % data .group (2 )
260
260
key = 'Keys.%s' % data .group (3 )
261
261
command = '''%sself.send_keys('%s', %s)''' % (
262
- whitespace , css_selector , key )
262
+ whitespace , selector , key )
263
263
if command .count ('\\ "' ) == command .count ('"' ):
264
264
command = command .replace ('\\ "' , '"' )
265
265
seleniumbase_lines .append (command )
@@ -271,10 +271,10 @@ def main():
271
271
'''\.send_keys\(\" ([\S\s]+)\" \)\s*$''' , line )
272
272
if data :
273
273
whitespace = data .group (1 )
274
- css_selector = '%s' % data .group (2 )
274
+ selector = '%s' % data .group (2 )
275
275
text = data .group (3 )
276
276
command = '''%sself.update_text("%s", '%s')''' % (
277
- whitespace , css_selector , text )
277
+ whitespace , selector , text )
278
278
if command .count ('\\ "' ) == command .count ('"' ):
279
279
command = command .replace ('\\ "' , '"' )
280
280
seleniumbase_lines .append (command )
@@ -287,10 +287,10 @@ def main():
287
287
if data :
288
288
uses_keys = True
289
289
whitespace = data .group (1 )
290
- css_selector = '%s' % data .group (2 )
290
+ selector = '%s' % data .group (2 )
291
291
key = 'Keys.%s' % data .group (3 )
292
- command = '''%sself.send_keys('%s' , %s)''' % (
293
- whitespace , css_selector , key )
292
+ command = '''%sself.send_keys("%s" , %s)''' % (
293
+ whitespace , selector , key )
294
294
if command .count ('\\ "' ) == command .count ('"' ):
295
295
command = command .replace ('\\ "' , '"' )
296
296
seleniumbase_lines .append (command )
@@ -303,10 +303,42 @@ def main():
303
303
'''\" ([\S\s]+)\" \)\s*$''' , line )
304
304
if data :
305
305
whitespace = data .group (1 )
306
- css_selector = '%s' % data .group (2 )
306
+ selector = '%s' % data .group (2 )
307
+ visible_text = '%s' % data .group (3 )
308
+ command = '''%sself.pick_select_option_by_text('%s', '%s')''' % (
309
+ whitespace , selector , visible_text )
310
+ if command .count ('\\ "' ) == command .count ('"' ):
311
+ command = command .replace ('\\ "' , '"' )
312
+ seleniumbase_lines .append (command )
313
+ continue
314
+
315
+ # Handle Select / by_xpath() / select_by_visible_text()
316
+ data = re .match (
317
+ '''^(\s*)Select\(driver\.find_element_by_xpath\('''
318
+ '''\" ([\S\s]+)\" \)\)\.select_by_visible_text\('''
319
+ '''\" ([\S\s]+)\" \)\s*$''' , line )
320
+ if data :
321
+ whitespace = data .group (1 )
322
+ selector = '%s' % data .group (2 )
323
+ visible_text = '%s' % data .group (3 )
324
+ command = '''%sself.pick_select_option_by_text("%s", '%s')''' % (
325
+ whitespace , selector , visible_text )
326
+ if command .count ('\\ "' ) == command .count ('"' ):
327
+ command = command .replace ('\\ "' , '"' )
328
+ seleniumbase_lines .append (command )
329
+ continue
330
+
331
+ # Handle Select / by_name() / select_by_visible_text()
332
+ data = re .match (
333
+ '''^(\s*)Select\(driver\.find_element_by_name\('''
334
+ '''\" ([\S\s]+)\" \)\)\.select_by_visible_text\('''
335
+ '''\" ([\S\s]+)\" \)\s*$''' , line )
336
+ if data :
337
+ whitespace = data .group (1 )
338
+ selector = '[name="%s"]' % data .group (2 )
307
339
visible_text = '%s' % data .group (3 )
308
340
command = '''%sself.pick_select_option_by_text('%s', '%s')''' % (
309
- whitespace , css_selector , visible_text )
341
+ whitespace , selector , visible_text )
310
342
if command .count ('\\ "' ) == command .count ('"' ):
311
343
command = command .replace ('\\ "' , '"' )
312
344
seleniumbase_lines .append (command )
@@ -423,14 +455,14 @@ def main():
423
455
if data :
424
456
whitespace = data .group (1 )
425
457
pre = data .group (2 )
426
- css_selector = '''%s''' % data .group (3 )
458
+ selector = '''%s''' % data .group (3 )
427
459
post = data .group (4 )
428
460
uni = ""
429
461
if '(u"' in line :
430
462
uni = "u"
431
463
has_unicode = True
432
464
command = '''%s%sself.is_element_present("%s")%s''' % (
433
- whitespace , pre , css_selector , post )
465
+ whitespace , pre , selector , post )
434
466
seleniumbase_lines .append (command )
435
467
continue
436
468
0 commit comments