I'm new to Selenium and am trying to understand how to pass parameters to a selenium script.
Normally if I call a python script with a parameter like this python myprogram.py myparameter from the command line, I can lookup the parameter in sys.argv[1] (assuming that I import sys)
An autogenerated selenium script looks like this: (I already tried to add sys.argv[1] to it)
# -*- coding: utf-8 -*-
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import NoSuchElementException
from selenium.common.exceptions import NoAlertPresentException
import unittest, time, re
import sys
class ParaN(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Firefox()
self.driver.implicitly_wait(30)
self.base_url = "https://www.google.de/"
self.verificationErrors = []
self.accept_next_alert = True
def test_para(self):
driver = self.driver
driver.get(self.base_url + "?q=" + sys.argv[1])
print(driver.current_url )
def is_element_present(self, how, what):
try: self.driver.find_element(by=how, value=what)
except NoSuchElementException, e: return False
return True
def is_alert_present(self):
try: self.driver.switch_to_alert()
except NoAlertPresentException, e: return False
return True
def close_alert_and_get_its_text(self):
try:
alert = self.driver.switch_to_alert()
alert_text = alert.text
if self.accept_next_alert:
alert.accept()
else:
alert.dismiss()
return alert_text
finally: self.accept_next_alert = True
def tearDown(self):
self.driver.quit()
self.assertEqual([], self.verificationErrors)
if __name__ == "__main__":
unittest.main()
This example is supposed to call google with a parameter as a search term.
But unittest.main() doesn't accept parameters and I don't understand what happens when unittest.main() runs, yet.
What's the best approach to add parameters to this?