from selenium import webdriver browser = webdriver.Firefox() browser.get('http://localhost:8000') assert 'Django' in browser.title
Functional tests should help you build an application with the right functionality, and guarantee you never accidentally break it (selenium webdriver).
Unit tests should help you write code that’s clean and bug free (unittest/django.test and pytest).
With unit testing:
To Run: python3 functional_tests.py
# functional_tests.py from selenium import webdriver import unittest class NewVisitorTest(unittest.TestCase): def setUp(self): self.browser = webdriver.Firefox() def tearDown(self): self.browser.quit() def test_can_start_a_list_and_retrieve_it_later(self): self.browser.get('http://localhost:8000') self.assertIn('To-Do', self.browser.title) self.fail('Finish the test!') if __name__ == '__main__': unittest.main(warnings='ignore')
Page Interaction
from selenium import webdriver from selenium.webdriver.common.keys import Keys import time driver = webdriver.Firefox() driver.get("http://python.org") # Find the search element search = driver.find_element_by_name('q') # Delete any existing text that is there search.clear() # Enter text into the search box search.send_keys("pycon") search.send_keys(Keys.RETURN) time.sleep(4) driver.close()
Filling Forms
from selenium import webdriver from selenium.webdriver.support.ui import Select import time driver = webdriver.Firefox() driver.get("http://url to your form") select = Select(driver.find_element_by_name('name of the element')) select.select_by_index(4) time.sleep(2) select.select_by_visible_text("200") time.sleep(2) select.select_by_value("250") # Show all available options on the select element options = select.options print(options) submit_button = driver.find_element_by_name('continue') submit_button.submit() time.sleep(2) driver.close()
Select Element: Live Example
from selenium import webdriver from selenium.webdriver.support.ui import Select import time driver = webdriver.Firefox() driver.get("https://wiki.python.org/moin/FrontPage") select = Select(driver.find_element_by_xpath('//*/form/div/select')) time.sleep(2) select.select_by_visible_text("Raw Text") time.sleep(2) driver.close()