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
24 changes: 10 additions & 14 deletions src/Selenium2Library/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,20 +30,16 @@ def warn(self, msg, html=False):
# TODO: Move logic in elementfinder.ElementFinder but keep method as proxy
# in LibraryComponent class
def element_find(self, locator, first_only=True, required=True, tag=None):
if isinstance(locator, basestring):
elements = self.element_finder.find(self.browser, locator, tag)
if required and len(elements) == 0:
raise ValueError(
"Element locator '{}' did not match any elements.".format(
locator
)
)
if first_only:
if not elements:
return None
return elements[0]
elif isinstance(locator, WebElement):
elements = locator
if isinstance(locator, WebElement):
return locator
elements = self.element_finder.find(self.browser, locator, tag)
if required and not elements:
raise ValueError("Element locator '{}' did not match any "
"elements.".format(locator))
if first_only:
if not elements:
return None
return elements[0]
return elements

# TODO: Move logic in elementfinder.ElementFinder but keep method as proxy
Expand Down
2 changes: 1 addition & 1 deletion src/Selenium2Library/keywords/browsermanagement.py
Original file line number Diff line number Diff line change
Expand Up @@ -640,7 +640,7 @@ def _create_remote_web_driver(self, capabilities_type, remote_url, desired_capab

desired_capabilities_object = capabilities_type.copy()

if type(desired_capabilities) in (str, unicode):
if not isinstance(desired_capabilities, dict):
desired_capabilities = self._parse_capabilities_string(desired_capabilities)

desired_capabilities_object.update(desired_capabilities or {})
Expand Down
2 changes: 1 addition & 1 deletion src/Selenium2Library/keywords/tableelement.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from Selenium2Library.base import LibraryComponent
from Selenium2Library.locators.tableelementfinder import TableElementFinder
from Selenium2Library.locators import TableElementFinder
from Selenium2Library.robotlibcore import keyword


Expand Down
6 changes: 6 additions & 0 deletions src/Selenium2Library/locators/customlocator.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
from robot.libraries.BuiltIn import BuiltIn


try:
basestring
except NameError:
basestring = str


class CustomLocator(object):

def __init__(self, name, finder):
Expand Down
3 changes: 2 additions & 1 deletion src/Selenium2Library/locators/tableelementfinder.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
from .elementfinder import ElementFinder
from Selenium2Library.context import ContextAware

from .elementfinder import ElementFinder


class TableElementFinder(ContextAware):

Expand Down
2 changes: 0 additions & 2 deletions src/Selenium2Library/utils/__init__.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
from . import events
from .browsercache import BrowserCache
from .librarylistener import LibraryListener


def escape_xpath_value(value):
value = unicode(value)
if '"' in value and '\'' in value:
parts_wo_apos = value.split('\'')
return "concat('%s')" % "', \"'\", '".join(parts_wo_apos)
Expand Down