def collection_has_texts(*expected: str) -> CollectionCondition: def visible_texts(collection: Collection) -> List[str]: return [webelement.text for webelement in collection() if webelement.is_displayed()] return CollectionCondition.raise_if_not_actual(f'has texts {expected}', visible_texts, predicate.equals_by_contains_to_list(expected))
def values_containing(self, *expected: str) -> Condition[Collection]: return CollectionCondition.raise_if_not_actual( f"has attribute '{name}' with values containing '{expected}'", attribute_values, predicate.equals_by_contains_to_list(expected), )
def test_expected_list_is_smaller_and_empty(self): expected = [] actual = ['>a<', '>b<'] assert not equals_by_contains_to_list(expected)(actual)
def test_expected_list_is_bigger_and_actual_is_empty(self): expected = ['a', 'b'] actual = [] assert not equals_by_contains_to_list(expected)(actual)
def test_expected_list_is_bigger(self): expected = ['a', 'b'] actual = ['>a<'] assert not equals_by_contains_to_list(expected)(actual)
def test_same_size(self): expected = ['a'] actual = ['>a<'] assert equals_by_contains_to_list(expected)(actual) assert not equals_by_contains_to_list(actual)(expected)
def values_containing(self, *expected: str) -> CollectionCondition: return CollectionCondition.raise_if_not_actual( f"has css property '{name}' with values containing '{expected}'", property_values, predicate.equals_by_contains_to_list(expected))