github seleniumbase/SeleniumBase v1.63.23
Update the instant page-object-generator tool

latest releases: v4.30.8, v4.30.7, v4.30.6...
3 years ago

Update the instant page-object-generator tool

This tool is used to replace selectors in tests with page objects.
Here's an example of how it works on this existing file: (https://github.com/seleniumbase/SeleniumBase/blob/master/examples/basic_test.py)

from seleniumbase import BaseCase

class MyTestClass(BaseCase):
    def test_basics(self):
        self.open("https://store.xkcd.com/search")
        self.type('input[name="q"]', "xkcd book\n")
        self.assert_text("xkcd book", "div.results")
        self.open("https://xkcd.com/353/")
        self.click('a[rel="license"]')
        self.go_back()
        self.click_link("About")
        self.click_link("comic #249")
        self.assert_element('img[alt*="Chess"]')

Now run sbase objectify basic_test.py:

sbase objectify basic_test.py 
>>> ["page_objects.py"] was created!
>>> ["page_objects.py"] was updated!
>>> ["basic_test.py"] was updated!

Output:
Here's what the page_objects.py file now looks like:

class Page(object):
    html = "html"
    css_1 = 'input[name="q"]'
    css_2 = "div.results"
    css_3 = 'a[rel="license"]'
    css_4 = 'img[alt*="Chess"]'

Here's what basic_test.py now looks like:

from .page_objects import Page
from seleniumbase import BaseCase

class MyTestClass(BaseCase):
    def test_basics(self):
        self.open("https://store.xkcd.com/search")
        self.type(Page.css_1, "xkcd book\n")
        self.assert_text("xkcd book", Page.css_2)
        self.open("https://xkcd.com/353/")
        self.click(Page.css_3)
        self.go_back()
        self.click_link("About")
        self.click_link("comic #249")
        self.assert_element(Page.css_4)

If the page_objects.py file already exists, it will get updated with new selectors when running sbase objectify FILE or sbase extract-objects FILE (assuming new selectors are found).

For more information on SeleniumBase console scripts, see: https://seleniumbase.io/seleniumbase/console_scripts/ReadMe/

Don't miss a new SeleniumBase release

NewReleases is sending notifications on new releases.