Converting getCSS Count Code from java to python
SMERSH009
smersh009x at gmail.com
Fri Feb 18 02:09:22 EST 2011
On Feb 17, 10:25 pm, SMERSH009 <smersh0... at gmail.com> wrote:
> On Feb 17, 9:51 pm, Stefan Behnel <stefan... at behnel.de> wrote:
>
>
>
> > SMERSH009, 17.02.2011 22:46:
>
> > > am still stuck with the following error when I try to
> > > print self.count_css_matches('css=[id="listGuests"]')
> > > I've also included the Selenium code below. Any further help would be
> > > appreciated.
>
> > > Traceback (most recent call last):
> > > File "D:\Temp\1TestingApps\Selenium\Scripts\SevPractice.py", line
> > > 27, in test_untitled
> > > print self.count_css_matches('css=[id="listGuests"]')
> > > File "D:\Temp\1TestingApps\Selenium\Scripts\SevPractice.py", line
> > > 17, in count_css_matches
> > > return int(selenium.get_eval(self, java_script_code))
> > > TypeError: unbound method get_eval() must be called with selenium
> > > instance as first argument (got Untitled instance instead)
>
> > > ----------------------------------------------------------------------
>
> > > from selenium import selenium
> > > import unittest, time
> > > from datetime import datetime
>
> > > class Untitled(unittest.TestCase):
> > > def count_css_matches(self, css_locator):
> > > java_script_code = '''
> > > var cssMatches = eval_css("%s", window.document);
> > > cssMatches.length;''' % css_locator
> > > return int(selenium.get_eval(self, java_script_code))
> > > #return int(selenium.getEval(java_script_code))
>
> > You want to use "self.selenium" here, not "selenium".
>
> > Stefan
>
> > > def setUp(self):
> > > self.verificationErrors = []
> > > self.selenium = selenium("localhost", 4445, "*chrome", "http://
> > >www.guestlistnation.com/")
> > > self.selenium.start()
>
> > > def test_untitled(self):
> > > sel = self.selenium
> > > sel.window_maximize()
> > > sel.open("/Events.aspx?Location=SAN FRANCISCO")
>
> > > sel.click("css=[id='EventDates_ctl00_NestedEvents_ctl01_btnDetails']")
> > > sel.wait_for_page_to_load("30000")
>
> > > print self.count_css_matches('css=[id="listGuests"]')
>
> > > if __name__ == "__main__":
> > > unittest.main()
>
> Wow-- you guys rock --big time! :))
> Here is the final code with a working examples:
>
> from selenium import selenium
> import unittest, time
> from datetime import datetime
>
> class Untitled(unittest.TestCase):
> def count_css_matches(self, css_locator):
> java_script_code = '''
> var cssMatches = eval_css("%s", window.document);
> cssMatches.length;''' % css_locator
> return self.selenium.get_eval(java_script_code)
>
> def setUp(self):
> self.verificationErrors = []
> self.selenium = selenium("localhost", 4445, "*chrome", "http://www.guestlistnation.com/")
> self.selenium.start()
>
> def test_untitled(self):
> sel = self.selenium
> sel.window_maximize()
> sel.open("/Events.aspx?Location=SAN FRANCISCO")
>
> sel.click("css=[id='EventDates_ctl00_NestedEvents_ctl01_btnDetails']")
> sel.wait_for_page_to_load("30000")
>
> print self.count_css_matches("[id='listGuests'] > option") #
> prints number of options in dropdown with 'id=listGuests'
> print self.count_css_matches("*") #prints all on page
> if __name__ == "__main__":
> unittest.main()
oops, forgot to put back the int conversion!
def count_css_matches(self, css_locator):
java_script_code = '''
var cssMatches = eval_css("%s", window.document);
cssMatches.length;''' % css_locator
return int(self.selenium.get_eval(java_script_code))
More information about the Python-list
mailing list