Converting getCSS Count Code from java to python
SMERSH009
smersh009x at gmail.com
Fri Feb 18 01:25:44 EST 2011
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()
More information about the Python-list
mailing list