Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
addons:
firefox: latest-esr
language: python
sudo: false
python:
Expand All @@ -6,7 +8,7 @@ install:
#- pip install pep8 --use-mirrors
#- pip install pyflakes --use-mirrors
- pip install robotframework
- pip install selenium
- pip install selenium==2.53.6
- pip install decorator
- pip install mockito
#- "if [[ ${BROWSER} == 'ie' ]]; then pip install ie_only_pkg; fi"
Expand Down
1 change: 1 addition & 0 deletions src/Selenium2Library/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@ class Selenium2Library(
| link | Click Element `|` link=My Link | Matches anchor elements by their link text |
| partial link | Click Element `|` partial link=y Lin | Matches anchor elements by their partial link text |
| css | Click Element `|` css=div.my_class | Matches by CSS selector |
| class | Click Element `|` class=my_class | Matches by class name selector |
| jquery | Click Element `|` jquery=div.my_class | Matches by jQuery/sizzle selector |
| sizzle | Click Element `|` sizzle=div.my_class | Matches by jQuery/sizzle selector |
| tag | Click Element `|` tag=div | Matches by HTML tag name |
Expand Down
6 changes: 6 additions & 0 deletions src/Selenium2Library/locators/elementfinder.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ def __init__(self):
'link': self._find_by_link_text,
'partial link': self._find_by_partial_link_text,
'css': self._find_by_css_selector,
'class': self._find_by_class_name,
'jquery': self._find_by_sizzle_selector,
'sizzle': self._find_by_sizzle_selector,
'tag': self._find_by_tag_name,
Expand Down Expand Up @@ -108,6 +109,11 @@ def _find_by_css_selector(self, browser, criteria, tag, constraints):
browser.find_elements_by_css_selector(criteria),
tag, constraints)

def _find_by_class_name(self, browser, criteria, tag, constraints):
return self._filter_elements(
browser.find_elements_by_class_name(criteria),
tag, constraints)

def _find_by_tag_name(self, browser, criteria, tag, constraints):
return self._filter_elements(
browser.find_elements_by_tag_name(criteria),
Expand Down
13 changes: 12 additions & 1 deletion test/unit/locators/test_elementfinder.py
Original file line number Diff line number Diff line change
Expand Up @@ -271,7 +271,6 @@ def test_find_by_partial_link_text(self):
result = finder.find(browser, "partial link=my link", tag='a')
self.assertEqual(result, [elements[1], elements[3]])


def test_find_by_css_selector(self):
finder = ElementFinder()
browser = mock()
Expand All @@ -284,6 +283,18 @@ def test_find_by_css_selector(self):
result = finder.find(browser, "css=#test1", tag='a')
self.assertEqual(result, [elements[1], elements[3]])

def test_find_by_class_names(self):
finder = ElementFinder()
browser = mock()

elements = self._make_mock_elements('div', 'a', 'span', 'a')
when(browser).find_elements_by_class_name("test1").thenReturn(elements)

result = finder.find(browser, "class=test1")
self.assertEqual(result, elements)
result = finder.find(browser, "class=test1", tag='a')
self.assertEqual(result, [elements[1], elements[3]])

def test_find_by_tag_name(self):
finder = ElementFinder()
browser = mock()
Expand Down