Skip to content

lemoncheesecake/lemoncheesecake-selenium

Repository files navigation

lemoncheesecake-selenium

lemoncheesecake-selenium provides logging facilities to the Selenium Python library for tests written with the lemoncheesecake test framework.

Here is a simple example of a search on https://www.python.org:

 # suites/python_org_search.py

import lemoncheesecake.api as lcc
from lemoncheesecake.matching import *
from lemoncheesecake_selenium import Selector, save_screenshot, is_in_page
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

@lcc.test()
def python_org_search():
    driver = webdriver.Firefox()
    driver.implicitly_wait(10)
    driver.get("http://www.python.org")
    check_that("title", driver.title, contains_string("Python"))
    selector = Selector(driver)
    search_field = selector.by_name("q")
    search_field.clear()
    search_field.set_text("pycon")
    search_field.set_text(Keys.RETURN)
    selector.by_xpath("//h3[text()='Results']").check_element(is_in_page())
    save_screenshot(driver)
    driver.close()

We run the test:

$ lcc run
============================== python_org_search ==============================
 OK  1 # python_org_search.python_org_search

Statistics :
 * Duration: 10s
 * Tests: 1
 * Successes: 1 (100%)
 * Failures: 0

HTML report : file:///tmp/python_org_search/report/report.html

And here are the report details :

test result

Installation

Install through pip:

$ pip install lemoncheesecake-selenium

lemoncheesecake-selenium is compatible with Python 3.7-3.10 and Selenium 4.x.

You will also need to install a WebDriver to control your web browser.

Features

  • clicking, setting text, selecting element in a <select>, etc..
  • checking DOM nodes
  • screenshots

Documentation

The documentation is available on https://lemoncheesecake-selenium.readthedocs.io.

Contact

Bug reports and improvement ideas are welcomed in tickets. A Google Groups forum is also available for discussions about lemoncheesecake: https://groups.google.com/forum/#!forum/lemoncheesecake.