def test_selene_demo(self): tasks = ss("#todo-list>li") active_tasks = tasks.filtered_by(have.css_class("active")) browser.open_url(app_url) browser.should(have.js_returned_true(is_TodoMVC_loaded)) for task_text in ["1", "2", "3"]: s("#new-todo").set_value(task_text).press_enter() tasks.should(have.texts("1", "2", "3")).should_each(have.css_class("active")) s("#todo-count").should(have.text('3')) tasks[2].s(".toggle").click() active_tasks.should(have.texts("1", "2")) active_tasks.should(have.size(2)) tasks.filtered_by(have.css_class("completed")).should(have.texts("3")) tasks.element_by(not_(have.css_class("completed"))).should( have.text("1")) tasks.filtered_by(not_(have.css_class("completed"))).should( have.texts("1", "2")) s(by.link_text("Active")).click() tasks[:2].should(have.texts("1", "2")) tasks[2].should(be.hidden) s(by.id("toggle-all")).click() s("//*[@id='clear-completed']").click() tasks.should(be.empty)
def should_not(self, condition, timeout=None): if timeout is None: timeout = config.timeout # todo: implement proper cashing not_condition = not_(condition) _wait_with_screenshot(self._webdriver, self, not_condition, timeout) return self
def not_(condition_to_be_inverted): return conditions.not_(condition_to_be_inverted)