Skip to content

Commit 5f8201f

Browse files
committed
Update the Selenium IDE conversion tool
1 parent 7ada95c commit 5f8201f

File tree

1 file changed

+62
-30
lines changed

1 file changed

+62
-30
lines changed

integrations/selenium_ide/convert_ide.py

Lines changed: 62 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -148,9 +148,9 @@ def main():
148148
'''\.click\(\)\s*$''', line)
149149
if data:
150150
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)
154154
seleniumbase_lines.append(command)
155155
continue
156156

@@ -160,11 +160,11 @@ def main():
160160
'''\.send_keys\(\"([\S\s]+)\"\)\s*$''', line)
161161
if data:
162162
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(']', '\\]')
165165
text = data.group(3)
166166
command = '''%sself.update_text('%s', '%s')''' % (
167-
whitespace, css_selector, text)
167+
whitespace, selector, text)
168168
seleniumbase_lines.append(command)
169169
continue
170170

@@ -175,11 +175,11 @@ def main():
175175
if data:
176176
uses_keys = True
177177
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(']', '\\]')
180180
key = 'Keys.%s' % data.group(3)
181181
command = '''%sself.send_keys('%s', %s)''' % (
182-
whitespace, css_selector, key)
182+
whitespace, selector, key)
183183
seleniumbase_lines.append(command)
184184
continue
185185

@@ -189,8 +189,8 @@ def main():
189189
'''\.click\(\)\s*$''', line)
190190
if data:
191191
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)
194194
seleniumbase_lines.append(command)
195195
continue
196196

@@ -200,10 +200,10 @@ def main():
200200
'''\.send_keys\(\"([\S\s]+)\"\)\s*$''', line)
201201
if data:
202202
whitespace = data.group(1)
203-
css_selector = '[name="%s"]' % data.group(2)
203+
selector = '[name="%s"]' % data.group(2)
204204
text = data.group(3)
205205
command = '''%sself.update_text('%s', '%s')''' % (
206-
whitespace, css_selector, text)
206+
whitespace, selector, text)
207207
seleniumbase_lines.append(command)
208208
continue
209209

@@ -214,10 +214,10 @@ def main():
214214
if data:
215215
uses_keys = True
216216
whitespace = data.group(1)
217-
css_selector = '[name="%s"]' % data.group(2)
217+
selector = '[name="%s"]' % data.group(2)
218218
key = 'Keys.%s' % data.group(3)
219219
command = '''%sself.send_keys('%s', %s)''' % (
220-
whitespace, css_selector, key)
220+
whitespace, selector, key)
221221
seleniumbase_lines.append(command)
222222
continue
223223

@@ -227,8 +227,8 @@ def main():
227227
'''\.click\(\)\s*$''', line)
228228
if data:
229229
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)
232232
if command.count('\\"') == command.count('"'):
233233
command = command.replace('\\"', '"')
234234
seleniumbase_lines.append(command)
@@ -240,10 +240,10 @@ def main():
240240
'''\.send_keys\(\"([\S\s]+)\"\)\s*$''', line)
241241
if data:
242242
whitespace = data.group(1)
243-
css_selector = '%s' % data.group(2)
243+
selector = '%s' % data.group(2)
244244
text = data.group(3)
245245
command = '''%sself.update_text('%s', '%s')''' % (
246-
whitespace, css_selector, text)
246+
whitespace, selector, text)
247247
if command.count('\\"') == command.count('"'):
248248
command = command.replace('\\"', '"')
249249
seleniumbase_lines.append(command)
@@ -256,10 +256,10 @@ def main():
256256
if data:
257257
uses_keys = True
258258
whitespace = data.group(1)
259-
css_selector = '%s' % data.group(2)
259+
selector = '%s' % data.group(2)
260260
key = 'Keys.%s' % data.group(3)
261261
command = '''%sself.send_keys('%s', %s)''' % (
262-
whitespace, css_selector, key)
262+
whitespace, selector, key)
263263
if command.count('\\"') == command.count('"'):
264264
command = command.replace('\\"', '"')
265265
seleniumbase_lines.append(command)
@@ -271,10 +271,10 @@ def main():
271271
'''\.send_keys\(\"([\S\s]+)\"\)\s*$''', line)
272272
if data:
273273
whitespace = data.group(1)
274-
css_selector = '%s' % data.group(2)
274+
selector = '%s' % data.group(2)
275275
text = data.group(3)
276276
command = '''%sself.update_text("%s", '%s')''' % (
277-
whitespace, css_selector, text)
277+
whitespace, selector, text)
278278
if command.count('\\"') == command.count('"'):
279279
command = command.replace('\\"', '"')
280280
seleniumbase_lines.append(command)
@@ -287,10 +287,10 @@ def main():
287287
if data:
288288
uses_keys = True
289289
whitespace = data.group(1)
290-
css_selector = '%s' % data.group(2)
290+
selector = '%s' % data.group(2)
291291
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)
294294
if command.count('\\"') == command.count('"'):
295295
command = command.replace('\\"', '"')
296296
seleniumbase_lines.append(command)
@@ -303,10 +303,42 @@ def main():
303303
'''\"([\S\s]+)\"\)\s*$''', line)
304304
if data:
305305
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)
307339
visible_text = '%s' % data.group(3)
308340
command = '''%sself.pick_select_option_by_text('%s', '%s')''' % (
309-
whitespace, css_selector, visible_text)
341+
whitespace, selector, visible_text)
310342
if command.count('\\"') == command.count('"'):
311343
command = command.replace('\\"', '"')
312344
seleniumbase_lines.append(command)
@@ -423,14 +455,14 @@ def main():
423455
if data:
424456
whitespace = data.group(1)
425457
pre = data.group(2)
426-
css_selector = '''%s''' % data.group(3)
458+
selector = '''%s''' % data.group(3)
427459
post = data.group(4)
428460
uni = ""
429461
if '(u"' in line:
430462
uni = "u"
431463
has_unicode = True
432464
command = '''%s%sself.is_element_present("%s")%s''' % (
433-
whitespace, pre, css_selector, post)
465+
whitespace, pre, selector, post)
434466
seleniumbase_lines.append(command)
435467
continue
436468

0 commit comments

Comments
 (0)