Skip to content

Instantly share code, notes, and snippets.

@sebug
Created October 8, 2017 14:32
Show Gist options
  • Select an option

  • Save sebug/c62397ee3d8c08625179c207a64efa87 to your computer and use it in GitHub Desktop.

Select an option

Save sebug/c62397ee3d8c08625179c207a64efa87 to your computer and use it in GitHub Desktop.

Revisions

  1. sebug created this gist Oct 8, 2017.
    60 changes: 60 additions & 0 deletions test_webkit.py
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,60 @@
    from selenium.webdriver.common.by import By
    from selenium import webdriver
    import unittest
    import time

    class WebKitFeatureStatusTest(unittest.TestCase):

    def test_feature_status_page_search(self):
    self.driver.get("https://webkit.org/status/")

    search_box = self.driver.find_element_by_id("search")
    search_box.send_keys("CSS")

    value = search_box.get_attribute("value")

    self.assertTrue(len(value) > 0)

    search_box.submit()

    feature_count = self.shown_feature_count()
    self.assertTrue(feature_count > 0)

    def test_feature_status_page_filters(self):
    self.driver.get("https://webkit.org/status/")

    time.sleep(5)

    filters = self.driver.find_elements(By.CSS_SELECTOR, "ul.status-filters li input")

    self.assertTrue(len(filters) is 7)

    for checked_filter in filter(lambda f: f.is_selected(), filters):
    checked_filter.click()

    unfiltered_count = self.shown_feature_count()
    running_count = 0
    for filt in filters:
    filt.click()
    self.assertTrue(filt.is_selected())
    running_count += self.shown_feature_count()
    filt.click()

    self.assertTrue(running_count is unfiltered_count)


    def shown_feature_count(self):
    return len(self.driver.execute_script("return document.querySelectorAll('li.feature:not(.is-hidden)')"))

    @classmethod
    def setUpClass(module):
    WebKitFeatureStatusTest.driver = webdriver.Safari()

    @classmethod
    def tearDownClass(module):
    WebKitFeatureStatusTest.driver.quit()

    if __name__ == '__main__':
    unittest.main()