Skip to content

Commit cf980d5

Browse files
committed
Update the [Selenium IDE => SeleniumBase] converter
1 parent 49cee5c commit cf980d5

File tree

1 file changed

+28
-10
lines changed

1 file changed

+28
-10
lines changed

integrations/selenium_ide/convert_ide.py

Lines changed: 28 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -87,14 +87,28 @@ def main():
8787
continue
8888

8989
# Handle page loads
90-
data = re.findall(
91-
'^\s*driver\.get\(self\.base_url \+ \"/\"\)\s*$', line)
90+
data = re.match(
91+
'^(\s*)driver\.get\((self\.base_url \+ \"/\S*\")\)\s*$', line)
9292
if data:
93-
data = data[0].replace("self.base_url", '"%s"' % ide_base_url)
94-
if ' + "/"' in data:
95-
data = data.replace(' + "/"', '')
96-
data = data.replace('driver.get(', 'self.open(')
97-
seleniumbase_lines.append(data)
93+
whitespace = data.group(1)
94+
url = data.group(2)
95+
url = url.replace("self.base_url", '"%s"' % ide_base_url)
96+
if '/" + "/' in url:
97+
url = url.replace('/" + "/', '/')
98+
if "/' + '/" in url:
99+
url = url.replace("/' + '/", "/")
100+
command = '''%sself.open(%s)''' % (whitespace, url)
101+
seleniumbase_lines.append(command)
102+
continue
103+
104+
# Handle more page loads
105+
data = re.match(
106+
'^(\s*)driver\.get\(\"(\S*)\"\)\s*$', line)
107+
if data:
108+
whitespace = data.group(1)
109+
url = data.group(2)
110+
command = '''%sself.open('%s')''' % (whitespace, url)
111+
seleniumbase_lines.append(command)
98112
continue
99113

100114
# Handle .find_element_by_id() + .click()
@@ -220,11 +234,13 @@ def main():
220234
seleniumbase_lines.append(command)
221235
continue
222236

237+
# Replace "self.base_url" with actual url if not already done
238+
if 'self.base_url' in line:
239+
line = line.replace("self.base_url", '"%s"' % ide_base_url)
240+
223241
# Convert driver. to self.driver. if not already done
224242
if 'driver.' in line and 'self.driver' not in line:
225-
command = line.replace('driver.', 'self.driver.')
226-
seleniumbase_lines.append(command)
227-
continue
243+
line = line.replace('driver.', 'self.driver.')
228244

229245
# Add all other lines to final script without making changes
230246
seleniumbase_lines.append(line)
@@ -243,6 +259,8 @@ def main():
243259
out_file = codecs.open(converted_file_name, "w+")
244260
out_file.writelines(seleniumbase_code)
245261
out_file.close()
262+
print("%s successfully created from %s\n" % (
263+
converted_file_name, webdriver_python_file))
246264

247265

248266
if __name__ == "__main__":

0 commit comments

Comments
 (0)