Sorry I do remember that issue in the past, the unittest.main takes over the cli variables in order to select modules to run
python selenium-google-test.py --help so unittest is assuming yankees is a test module, you can override this functionality however with: unittest.main(argv=['mytestapp']) this will cause the default run all test modules, and allow you to access the argv Hope that helps Vince On Tue, Jul 14, 2009 at 1:36 PM, J Cook <jcook...@gmail.com> wrote: > Ok, > > So I added the following: > > <code> > from selenium import selenium > import unittest, time, re > import sys # added this > > q = sys.argv[1] # added this > print q # added this just to see > > class NewTest(unittest.TestCase): > def setUp(self): > self.verificationErrors = [] > self.selenium = selenium("localhost", 4444, "*chrome", " > http://www.google.com/") > self.selenium.start() > > def test_new(self): > sel = self.selenium > sel.open("/") > sel.type("q", q) # this is where I want the argument to end up > > def tearDown(self): > self.selenium.stop() > self.assertEqual([], self.verificationErrors) > > if __name__ == "__main__": > unittest.main() > </code> > > I run the following: > > $ python selenium-google-test.py yankees > yankees > Traceback (most recent call last): > File "selenium-google-test.py", line 24, in <module> > unittest.main() > File "/usr/lib/python2.6/unittest.py", line 816, in __init__ > self.parseArgs(argv) > File "/usr/lib/python2.6/unittest.py", line 843, in parseArgs > self.createTests() > File "/usr/lib/python2.6/unittest.py", line 849, in createTests > self.module) > File "/usr/lib/python2.6/unittest.py", line 613, in loadTestsFromNames > suites = [self.loadTestsFromName(name, module) for name in names] > File "/usr/lib/python2.6/unittest.py", line 584, in loadTestsFromName > parent, obj = obj, getattr(obj, part) > AttributeError: 'module' object has no attribute 'yankees' > > How do I get the argument over to where I need it to be? > > Justin > > vince spicer wrote: > >> First off, selenium is a great tool and the python driver is very powerful >> >> there are numerous ways to access cli variables, >> >> the quickest >> >> import sys >> print sys.srgv >> >> sys.argv will it output a array of all command line args >> >> ./selenium-google-test.py yankees >> will out put: >> >> ['selenium-google-test.py', 'yankees'] >> >> so >> >> args = sys.argv >> >> args[0] == 'yankees' >> True >> >> for a more functional way, check out >> http://docs.python.org/library/getopt.html >> >> >> >> On Tue, Jul 14, 2009 at 11:11 AM, J Cook <jcook...@gmail.com <mailto: >> jcook...@gmail.com>> wrote: >> >> Hello, >> >> I have some autogenerated code from Selenium which I cannot figure >> out how to pass some command line variables to. For example I could >> export the same in Perl and it would be for example: >> >> <code> >> use strict; >> use warnings; >> use Time::HiRes qw(sleep); >> use Test::WWW::Selenium; >> use Test::More "no_plan"; >> use Test::Exception; >> >> my $sel = Test::WWW::Selenium->new( host => "localhost", >> port => 4444, >> browser => "*chrome", >> browser_url => " >> http://www.google.com/" ); >> >> $sel->open_ok("/"); >> $sel->type_ok("q", "red sox"); >> </code> >> >> I could then go in and add something like: >> >> my ($arg1) = shift || "default"; >> >> which would pick up the first command line parameter and then I >> could do something like: >> >> $sel->(type_ok, $arg1); >> >> All is good here, now Selenium will export the following for Python: >> >> <code> >> from selenium import selenium >> import unittest, time, re >> >> class NewTest(unittest.TestCase): >> def setUp(self): >> self.verificationErrors = [] >> self.selenium = selenium("localhost", 4444, "*chrome", >> "http://www.google.com/") >> self.selenium.start() >> >> def test_new(self): >> sel = self.selenium >> sel.open("/") >> sel.type("q", "red sox") >> >> def tearDown(self): >> self.selenium.stop() >> self.assertEqual([], self.verificationErrors) >> >> if __name__ == "__main__": >> unittest.main() >> </code> >> >> Now I am confused on how to pass a command line parameter here. Any >> suggestions? I would like to be able to run something like: >> >> $ python selenium-google-test.py "yankees" >> >> Suggestions? >> >> >> TIA >> >> Justin >> _______________________________________________ >> Tutor maillist - Tutor@python.org <mailto:Tutor@python.org> >> http://mail.python.org/mailman/listinfo/tutor >> >> >>
_______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor