Skip to content

Instantly share code, notes, and snippets.

@danizen
Last active December 10, 2019 18:38
Show Gist options
  • Save danizen/238ffdc8a231a93b10e4a082e95b243e to your computer and use it in GitHub Desktop.
Save danizen/238ffdc8a231a93b10e4a082e95b243e to your computer and use it in GitHub Desktop.
How to use page objects with nlm_selenium
[pytest]
baseurl = https://ned.nih.gov
browser = chrome
from nlm_selenium import SeleniumTestCase
from nlm_selenium.page_objects import PageObject, PageElement
class SearchPage(PageObject):
URI = '/search/'
last_name = PageElement(id_='ContentPlaceHolder_txtLastName')
first_name = PageElement(id_='ContentPlaceHolder_txtFirstName')
search_button = PageElement(id_='ContentPlaceHolder_btnSearchName')
records_label = PageElement(id_='ContentPlaceHolder_lblRecords', caching=False)
error_label = PageElement(id_='ContentPlaceHolder_lblError', caching=False)
def should_have_no_results(self):
assert self.error_label
assert self.error_label.text
def should_have_results(self):
assert self.records_label
assert self.records_label.text
class TestNedSearch(SeleniumTestCase):
def test_wiring(self):
assert self.baseUrl == 'https://ned.nih.gov'
def test_ned_search_1(self):
# open | https:#ned.nih.gov/search/ |
page = SearchPage(self.driver, self.baseUrl)
page.open()
page.wait_for('first_name', 'last_name', 'search_button')
# type | id=ContentPlaceHolder_txtLastName | Paleontology
page.last_name.clear()
page.last_name.send_keys("Paleontology")
# type | id=ContentPlaceHolder_txtFirstName | John
page.first_name.clear()
page.first_name.send_keys("John")
# click | id=ContentPlaceHolder_btnSearchName |
page.search_button.click()
page.should_have_no_results()
from nlm_selenium.page_objects import PageObject, PageElement
class SearchPage(PageObject):
URI = '/search/'
last_name = PageElement(id_='ContentPlaceHolder_txtLastName')
first_name = PageElement(id_='ContentPlaceHolder_txtFirstName')
search_button = PageElement(id_='ContentPlaceHolder_btnSearchName')
records_label = PageElement(id_='ContentPlaceHolder_lblRecords', caching=False)
error_label = PageElement(id_='ContentPlaceHolder_lblError', caching=False)
def should_have_no_results(self):
assert self.error_label
assert self.error_label.text
def should_have_results(self):
assert self.records_label
assert self.records_label.text
def test_wiring(base_url):
assert base_url == 'https://ned.nih.gov'
def test_ned_search_1(webdriver, base_url):
# open | https:#ned.nih.gov/search/ |
page = SearchPage(webdriver, base_url)
page.open()
page.wait_for('first_name', 'last_name', 'search_button')
# type | id=ContentPlaceHolder_txtLastName | Paleontology
page.last_name.clear()
page.last_name.send_keys("Paleontology")
# type | id=ContentPlaceHolder_txtFirstName | John
page.first_name.clear()
page.first_name.send_keys("John")
# click | id=ContentPlaceHolder_btnSearchName |
page.search_button.click()
page.should_have_no_results()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment