Hello community, here is the log from the commit of package python-selenium for openSUSE:Factory checked in at 2018-07-02 23:33:13 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-selenium (Old) and /work/SRC/openSUSE:Factory/.python-selenium.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-selenium" Mon Jul 2 23:33:13 2018 rev:8 rq:620084 version:3.13.0 Changes: -------- --- /work/SRC/openSUSE:Factory/python-selenium/python-selenium.changes 2018-05-11 09:18:39.245691403 +0200 +++ /work/SRC/openSUSE:Factory/.python-selenium.new/python-selenium.changes 2018-07-02 23:33:33.405241381 +0200 @@ -1,0 +2,16 @@ +Sun Jul 1 19:18:04 UTC 2018 - [email protected] + +- specfile: + * be more specific for %{python_sitelib}/* in %files + +------------------------------------------------------------------- +Sun Jul 1 17:46:04 UTC 2018 - [email protected] + +- update to version 3.13.0: + * Add executing Chrome devtools command (#5989) + * fix incorrect w3c action encoding in python client (#6014) + * Implement context manager for WebDriver + * Stop sending "windowHandle" param in maximize_window command for + w3c + +------------------------------------------------------------------- Old: ---- selenium-3.12.0.tar.gz New: ---- selenium-3.13.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-selenium.spec ++++++ --- /var/tmp/diff_new_pack.MCh7YX/_old 2018-07-02 23:33:35.133239242 +0200 +++ /var/tmp/diff_new_pack.MCh7YX/_new 2018-07-02 23:33:35.137239237 +0200 @@ -18,7 +18,7 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} Name: python-selenium -Version: 3.12.0 +Version: 3.13.0 Release: 0 Summary: Python bindings for Selenium License: Apache-2.0 @@ -57,6 +57,6 @@ %files %{python_files} %doc README.rst CHANGES -%{python_sitelib}/* +%{python_sitelib}/selenium* %changelog ++++++ selenium-3.12.0.tar.gz -> selenium-3.13.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/selenium-3.12.0/CHANGES new/selenium-3.13.0/CHANGES --- old/selenium-3.12.0/CHANGES 2018-03-12 12:48:16.000000000 +0100 +++ new/selenium-3.13.0/CHANGES 2018-06-25 16:37:37.000000000 +0200 @@ -1,3 +1,24 @@ +Selenium 3.13.0 + +* Add executing Chrome devtools command (#5989) +* fix incorrect w3c action encoding in python client (#6014) +* Implement context manager for WebDriver +* Stop sending "windowHandle" param in maximize_window command for w3c + +Selenium 3.12.0 + +* Add desired_capabilities keyword to IE and Firefox drivers for driver consitency +* Fix bug with creating Safari webdriver instance (#5578) +* Add support for Safari extension command +* Deprecate Options `set_headless` methods in favor of property setter +* Only set --disable-gpu for Chrome headless when on Windows +* Add selenium User-Agent header (#5696) +* Remote webdriver can now be started when passing options +* All Options.to_capabilities now start with default DesiredCapabilities +* Improve the error message that is raised when safaridriver cannot be found (#5739) +* IeOptions class is now imported to selenium.webdriver +* Remove the beta `authenticate` methods from `Alert` + Selenium 3.11.0 No changes just keeping python version in step with the rest of the project. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/selenium-3.12.0/PKG-INFO new/selenium-3.13.0/PKG-INFO --- old/selenium-3.12.0/PKG-INFO 2018-05-08 16:37:44.000000000 +0200 +++ new/selenium-3.13.0/PKG-INFO 2018-06-25 21:49:40.000000000 +0200 @@ -1,11 +1,12 @@ Metadata-Version: 1.1 Name: selenium -Version: 3.12.0 +Version: 3.13.0 Summary: Python bindings for Selenium Home-page: https://github.com/SeleniumHQ/selenium/ Author: UNKNOWN Author-email: UNKNOWN License: Apache 2.0 +Description-Content-Type: UNKNOWN Description: ====================== Selenium Client Driver ====================== @@ -24,7 +25,7 @@ +-----------+--------------------------------------------------------------------------------------+ | **Dev**: | https://github.com/SeleniumHQ/Selenium | +-----------+--------------------------------------------------------------------------------------+ - | **PyPI**: | https://pypi.python.org/pypi/selenium | + | **PyPI**: | https://pypi.org/project/selenium/ | +-----------+--------------------------------------------------------------------------------------+ | **IRC**: | **#selenium** channel on freenode | +-----------+--------------------------------------------------------------------------------------+ @@ -43,7 +44,7 @@ pip install -U selenium - Alternately, you can download the source distribution from `PyPI <http://pypi.python.org/pypi/selenium>`_ (e.g. selenium-3.12.0.tar.gz), unarchive it, and run:: + Alternately, you can download the source distribution from `PyPI <https://pypi.org/project/selenium/#files>`_ (e.g. selenium-3.13.0.tar.gz), unarchive it, and run:: python setup.py install @@ -135,11 +136,11 @@ However, to use Selenium Webdriver Remote or the legacy Selenium API (Selenium-RC), you need to also run the Selenium server. The server requires a Java Runtime Environment (JRE). - Download the server separately, from: http://selenium-release.storage.googleapis.com/3.12/selenium-server-standalone-3.12.0.jar + Download the server separately, from: http://selenium-release.storage.googleapis.com/3.13/selenium-server-standalone-3.13.0.jar Run the server from the command line:: - java -jar selenium-server-standalone-3.12.0.jar + java -jar selenium-server-standalone-3.13.0.jar Then run your Python client scripts. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/selenium-3.12.0/README.rst new/selenium-3.13.0/README.rst --- old/selenium-3.12.0/README.rst 2018-05-08 15:56:18.000000000 +0200 +++ new/selenium-3.13.0/README.rst 2018-06-25 16:33:22.000000000 +0200 @@ -16,7 +16,7 @@ +-----------+--------------------------------------------------------------------------------------+ | **Dev**: | https://github.com/SeleniumHQ/Selenium | +-----------+--------------------------------------------------------------------------------------+ -| **PyPI**: | https://pypi.python.org/pypi/selenium | +| **PyPI**: | https://pypi.org/project/selenium/ | +-----------+--------------------------------------------------------------------------------------+ | **IRC**: | **#selenium** channel on freenode | +-----------+--------------------------------------------------------------------------------------+ @@ -35,7 +35,7 @@ pip install -U selenium -Alternately, you can download the source distribution from `PyPI <http://pypi.python.org/pypi/selenium>`_ (e.g. selenium-3.12.0.tar.gz), unarchive it, and run:: +Alternately, you can download the source distribution from `PyPI <https://pypi.org/project/selenium/#files>`_ (e.g. selenium-3.13.0.tar.gz), unarchive it, and run:: python setup.py install @@ -127,11 +127,11 @@ However, to use Selenium Webdriver Remote or the legacy Selenium API (Selenium-RC), you need to also run the Selenium server. The server requires a Java Runtime Environment (JRE). -Download the server separately, from: http://selenium-release.storage.googleapis.com/3.12/selenium-server-standalone-3.12.0.jar +Download the server separately, from: http://selenium-release.storage.googleapis.com/3.13/selenium-server-standalone-3.13.0.jar Run the server from the command line:: - java -jar selenium-server-standalone-3.12.0.jar + java -jar selenium-server-standalone-3.13.0.jar Then run your Python client scripts. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/selenium-3.12.0/selenium/__init__.py new/selenium-3.13.0/selenium/__init__.py --- old/selenium-3.12.0/selenium/__init__.py 2018-05-08 15:56:18.000000000 +0200 +++ new/selenium-3.13.0/selenium/__init__.py 2018-06-25 16:33:22.000000000 +0200 @@ -16,4 +16,4 @@ # under the License. -__version__ = "3.12.0" +__version__ = "3.13.0" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/selenium-3.12.0/selenium/webdriver/__init__.py new/selenium-3.13.0/selenium/webdriver/__init__.py --- old/selenium-3.12.0/selenium/webdriver/__init__.py 2018-05-08 15:56:18.000000000 +0200 +++ new/selenium-3.13.0/selenium/webdriver/__init__.py 2018-06-25 16:38:06.000000000 +0200 @@ -36,4 +36,4 @@ from .common.touch_actions import TouchActions # noqa from .common.proxy import Proxy # noqa -__version__ = '3.9.0' +__version__ = '3.13.0' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/selenium-3.12.0/selenium/webdriver/chrome/remote_connection.py new/selenium-3.13.0/selenium/webdriver/chrome/remote_connection.py --- old/selenium-3.12.0/selenium/webdriver/chrome/remote_connection.py 2017-08-10 14:43:53.000000000 +0200 +++ new/selenium-3.13.0/selenium/webdriver/chrome/remote_connection.py 2018-06-25 16:33:22.000000000 +0200 @@ -25,3 +25,4 @@ self._commands["launchApp"] = ('POST', '/session/$sessionId/chromium/launch_app') self._commands["setNetworkConditions"] = ('POST', '/session/$sessionId/chromium/network_conditions') self._commands["getNetworkConditions"] = ('GET', '/session/$sessionId/chromium/network_conditions') + self._commands['executeCdpCommand'] = ('POST', '/session/$sessionId/goog/cdp/execute') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/selenium-3.12.0/selenium/webdriver/chrome/webdriver.py new/selenium-3.13.0/selenium/webdriver/chrome/webdriver.py --- old/selenium-3.12.0/selenium/webdriver/chrome/webdriver.py 2017-11-21 21:41:08.000000000 +0100 +++ new/selenium-3.13.0/selenium/webdriver/chrome/webdriver.py 2018-06-25 16:33:22.000000000 +0200 @@ -115,6 +115,29 @@ 'network_conditions': network_conditions }) + def execute_cdp_cmd(self, cmd, cmd_args): + """ + Execute Chrome Devtools Protocol command and get returned result + + The command and command args should follow chrome devtools protocol domains/commands, refer to link + https://chromedevtools.github.io/devtools-protocol/ + + :Args: + - cmd: A str, command name + - cmd_args: A dict, command args. empty dict {} if there is no command args + + :Usage: + driver.execute_cdp_cmd('Network.getResponseBody', {'requestId': requestId}) + + :Returns: + A dict, empty dict {} if there is no result to return. + For example to getResponseBody: + + {'base64Encoded': False, 'body': 'response body string'} + + """ + return self.execute("executeCdpCommand", {'cmd': cmd, 'params': cmd_args})['value'] + def quit(self): """ Closes the browser and shuts down the ChromeDriver executable diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/selenium-3.12.0/selenium/webdriver/common/actions/action_builder.py new/selenium-3.13.0/selenium/webdriver/common/actions/action_builder.py --- old/selenium-3.12.0/selenium/webdriver/common/actions/action_builder.py 2017-03-07 18:32:02.000000000 +0100 +++ new/selenium-3.13.0/selenium/webdriver/common/actions/action_builder.py 2018-06-25 16:33:22.000000000 +0200 @@ -26,7 +26,7 @@ class ActionBuilder(object): def __init__(self, driver, mouse=None, keyboard=None): if mouse is None: - mouse = PointerInput(interaction.POINTER, "mouse") + mouse = PointerInput(interaction.POINTER_MOUSE, "mouse") if keyboard is None: keyboard = KeyInput(interaction.KEY) self.devices = [mouse, keyboard] @@ -62,8 +62,8 @@ self._add_input(new_input) return new_input - def add_pointer_input(self, type_, name): - new_input = PointerInput(type_, name) + def add_pointer_input(self, kind, name): + new_input = PointerInput(kind, name) self._add_input(new_input) return new_input diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/selenium-3.12.0/selenium/webdriver/common/actions/interaction.py new/selenium-3.13.0/selenium/webdriver/common/actions/interaction.py --- old/selenium-3.12.0/selenium/webdriver/common/actions/interaction.py 2017-03-01 17:16:52.000000000 +0100 +++ new/selenium-3.13.0/selenium/webdriver/common/actions/interaction.py 2018-06-25 16:33:22.000000000 +0200 @@ -21,6 +21,12 @@ NONE = "none" SOURCE_TYPES = set([KEY, POINTER, NONE]) +POINTER_MOUSE = "mouse" +POINTER_TOUCH = "touch" +POINTER_PEN = "pen" + +POINTER_KINDS = set([POINTER_MOUSE, POINTER_TOUCH, POINTER_PEN]) + class Interaction(object): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/selenium-3.12.0/selenium/webdriver/common/actions/pointer_actions.py new/selenium-3.13.0/selenium/webdriver/common/actions/pointer_actions.py --- old/selenium-3.12.0/selenium/webdriver/common/actions/pointer_actions.py 2017-03-07 18:32:02.000000000 +0100 +++ new/selenium-3.13.0/selenium/webdriver/common/actions/pointer_actions.py 2018-06-25 16:33:22.000000000 +0200 @@ -27,7 +27,7 @@ def __init__(self, source=None): if source is None: - source = PointerInput(interaction.POINTER, "mouse") + source = PointerInput(interaction.POINTER_MOUSE, "mouse") self.source = source super(PointerActions, self).__init__(source) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/selenium-3.12.0/selenium/webdriver/common/actions/pointer_input.py new/selenium-3.13.0/selenium/webdriver/common/actions/pointer_input.py --- old/selenium-3.12.0/selenium/webdriver/common/actions/pointer_input.py 2017-03-09 15:10:29.000000000 +0100 +++ new/selenium-3.13.0/selenium/webdriver/common/actions/pointer_input.py 2018-06-25 16:33:22.000000000 +0200 @@ -15,7 +15,9 @@ # specific language governing permissions and limitations # under the License. from .input_device import InputDevice +from .interaction import POINTER, POINTER_KINDS +from selenium.common.exceptions import InvalidArgumentException from selenium.webdriver.remote.webelement import WebElement @@ -23,9 +25,12 @@ DEFAULT_MOVE_DURATION = 250 - def __init__(self, type_, name): + def __init__(self, kind, name): super(PointerInput, self).__init__() - self.type = type_ + if (kind not in POINTER_KINDS): + raise InvalidArgumentException("Invalid PointerInput kind '%s'" % kind) + self.type = POINTER + self.kind = kind self.name = name def create_pointer_move(self, duration=DEFAULT_MOVE_DURATION, x=None, y=None, origin=None): @@ -53,6 +58,6 @@ def encode(self): return {"type": self.type, - "parameters": {"pointerType": self.name}, + "parameters": {"pointerType": self.kind}, "id": self.name, "actions": [acts for acts in self.actions]} Binary files old/selenium-3.12.0/selenium/webdriver/firefox/webdriver.xpi and new/selenium-3.13.0/selenium/webdriver/firefox/webdriver.xpi differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/selenium-3.12.0/selenium/webdriver/remote/isDisplayed.js new/selenium-3.13.0/selenium/webdriver/remote/isDisplayed.js --- old/selenium-3.12.0/selenium/webdriver/remote/isDisplayed.js 2018-05-08 16:06:44.000000000 +0200 +++ new/selenium-3.13.0/selenium/webdriver/remote/isDisplayed.js 2018-06-25 21:45:05.000000000 +0200 @@ -98,4 +98,4 @@ function Hc(a){var b=Jc(a);if(b)return b.rect;if(K(a,"HTML"))return a=F(a),a=((a?a.parentWindow||a.defaultView:window)||window).document,a="CSS1Compat"==a.compatMode?a.documentElement:a.body,a=new ja(a.clientWidth,a.clientHeight),new E(0,0,a.width,a.height);try{var c=a.getBoundingClientRect()}catch(d){return new E(0,0,0,0)}b=new E(c.left,c.top,c.right-c.left,c.bottom-c.top);B&&a.ownerDocument.body&&(a=F(a),b.a-=a.documentElement.clientLeft+a.body.clientLeft,b.b-=a.documentElement.clientTop+a.body.clientTop); return b}function Jc(a){var b=K(a,"MAP");if(!b&&!K(a,"AREA"))return null;var c=b?a:K(a.parentNode,"MAP")?a.parentNode:null,d=null,e=null;c&&c.name&&(d=Cc('/descendant::*[@usemap = "#'+c.name+'"]',F(c)))&&(e=Hc(d),b||"default"==a.shape.toLowerCase()||(a=Mc(a),b=Math.min(Math.max(a.a,0),e.width),c=Math.min(Math.max(a.b,0),e.height),e=new E(b+e.a,c+e.b,Math.min(a.width,e.width-b),Math.min(a.height,e.height-c))));return{B:d,rect:e||new E(0,0,0,0)}} function Mc(a){var b=a.shape.toLowerCase();a=a.coords.split(",");if("rect"==b&&4==a.length){var b=a[0],c=a[1];return new E(b,c,a[2]-b,a[3]-c)}if("circle"==b&&3==a.length)return b=a[2],new E(a[0]-b,a[1]-b,2*b,2*b);if("poly"==b&&2<a.length){for(var b=a[0],c=a[1],d=b,e=c,f=2;f+1<a.length;f+=2)b=Math.min(b,a[f]),d=Math.max(d,a[f]),c=Math.min(c,a[f+1]),e=Math.max(e,a[f+1]);return new E(b,c,d-b,e-c)}return new E(0,0,0,0)}function Lc(a){a=Hc(a);return new db(a.b,a.a+a.width,a.b+a.height,a.a)} -function Kc(a){if(qb){if("relative"==Y(a,"position"))return 1;a=Y(a,"filter");return(a=a.match(/^alpha\(opacity=(\d*)\)/)||a.match(/^progid:DXImageTransform.Microsoft.Alpha\(Opacity=(\d*)\)/))?Number(a[1])/100:1}return Nc(a)}function Nc(a){var b=1,c=Y(a,"opacity");c&&(b=Number(c));(a=Ec(a))&&(b*=Nc(a));return b};aa("_",function(a,b){function c(a){if(K(a)&&"none"==Y(a,"display"))return!1;var b=a.parentNode;b.shadowRoot&&void 0!==a.assignedSlot?b=a.assignedSlot?a.assignedSlot.parentNode:null:a.getDestinationInsertionPoints&&(a=a.getDestinationInsertionPoints(),0<a.length&&(b=a[a.length-1]));if(Dc&&b instanceof ShadowRoot){if(b.host.shadowRoot!==b)return!1;b=b.host}return!b||9!=b.nodeType&&11!=b.nodeType?b&&c(b):!0}return Gc(a,!!b,c)});; return this._.apply(null,arguments);}.apply({navigator:typeof window!='undefined'?window.navigator:null,document:typeof window!='undefined'?window.document:null}, arguments);} +function Kc(a){if(qb){if("relative"==Y(a,"position"))return 1;a=Y(a,"filter");return(a=a.match(/^alpha\(opacity=(\d*)\)/)||a.match(/^progid:DXImageTransform.Microsoft.Alpha\(Opacity=(\d*)\)/))?Number(a[1])/100:1}return Nc(a)}function Nc(a){var b=1,c=Y(a,"opacity");c&&(b=Number(c));(a=Ec(a))&&(b*=Nc(a));return b};aa("_",function(a,b){function c(a){if(K(a)&&"none"==Y(a,"display"))return!1;var b;(b=a.parentNode)&&b.shadowRoot&&void 0!==a.assignedSlot?b=a.assignedSlot?a.assignedSlot.parentNode:null:a.getDestinationInsertionPoints&&(a=a.getDestinationInsertionPoints(),0<a.length&&(b=a[a.length-1]));if(Dc&&b instanceof ShadowRoot){if(b.host.shadowRoot!==b)return!1;b=b.host}return!b||9!=b.nodeType&&11!=b.nodeType?b&&c(b):!0}return Gc(a,!!b,c)});; return this._.apply(null,arguments);}.apply({navigator:typeof window!='undefined'?window.navigator:null,document:typeof window!='undefined'?window.document:null}, arguments);} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/selenium-3.12.0/selenium/webdriver/remote/remote_connection.py new/selenium-3.13.0/selenium/webdriver/remote/remote_connection.py --- old/selenium-3.12.0/selenium/webdriver/remote/remote_connection.py 2018-04-04 10:58:50.000000000 +0200 +++ new/selenium-3.13.0/selenium/webdriver/remote/remote_connection.py 2018-06-25 15:11:27.000000000 +0200 @@ -540,6 +540,7 @@ resp.getheader = lambda x: resp.headers.get(x) data = resp.read() + LOGGER.debug(data) try: if 300 <= statuscode < 304: return self._request('GET', resp.getheader('location')) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/selenium-3.12.0/selenium/webdriver/remote/webdriver.py new/selenium-3.13.0/selenium/webdriver/remote/webdriver.py --- old/selenium-3.12.0/selenium/webdriver/remote/webdriver.py 2018-05-08 15:56:18.000000000 +0200 +++ new/selenium-3.13.0/selenium/webdriver/remote/webdriver.py 2018-06-25 16:33:22.000000000 +0200 @@ -162,6 +162,12 @@ return '<{0.__module__}.{0.__name__} (session="{1}")>'.format( type(self), self.session_id) + def __enter__(self): + return self + + def __exit__(self, *args): + self.quit() + @contextmanager def file_detector_context(self, file_detector_class, *args, **kwargs): """ @@ -722,10 +728,12 @@ """ Maximizes the current window that webdriver is using """ - command = Command.MAXIMIZE_WINDOW - if self.w3c: - command = Command.W3C_MAXIMIZE_WINDOW - self.execute(command, {"windowHandle": "current"}) + params = None + command = Command.W3C_MAXIMIZE_WINDOW + if not self.w3c: + command = Command.MAXIMIZE_WINDOW + params = {'windowHandle': 'current'} + self.execute(command, params) def fullscreen_window(self): """ @@ -933,10 +941,11 @@ def find_element(self, by=By.ID, value=None): """ - 'Private' method used by the find_element_by_* methods. + Find an element given a By strategy and locator. Prefer the find_element_by_* methods when + possible. :Usage: - Use the corresponding find_element_by_* instead of this. + element = driver.find_element(By.ID, 'foo') :rtype: WebElement """ @@ -958,10 +967,11 @@ def find_elements(self, by=By.ID, value=None): """ - 'Private' method used by the find_elements_by_* methods. + Find elements given a By strategy and locator. Prefer the find_elements_by_* methods when + possible. :Usage: - Use the corresponding find_elements_by_* instead of this. + elements = driver.find_elements(By.CLASS_NAME, 'foo') :rtype: list of WebElement """ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/selenium-3.12.0/selenium/webdriver/remote/webelement.py new/selenium-3.13.0/selenium/webdriver/remote/webelement.py --- old/selenium-3.12.0/selenium/webdriver/remote/webelement.py 2018-03-05 10:36:38.000000000 +0100 +++ new/selenium-3.13.0/selenium/webdriver/remote/webelement.py 2018-05-12 02:35:17.000000000 +0200 @@ -629,10 +629,11 @@ def find_element(self, by=By.ID, value=None): """ - 'Private' method used by the find_element_by_* methods. + Find an element given a By strategy and locator. Prefer the find_element_by_* methods when + possible. :Usage: - Use the corresponding find_element_by_* instead of this. + element = element.find_element(By.ID, 'foo') :rtype: WebElement """ @@ -654,10 +655,11 @@ def find_elements(self, by=By.ID, value=None): """ - 'Private' method used by the find_elements_by_* methods. + Find elements given a By strategy and locator. Prefer the find_elements_by_* methods when + possible. :Usage: - Use the corresponding find_elements_by_* instead of this. + element = element.find_elements(By.CLASS_NAME, 'foo') :rtype: list of WebElement """ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/selenium-3.12.0/selenium.egg-info/PKG-INFO new/selenium-3.13.0/selenium.egg-info/PKG-INFO --- old/selenium-3.12.0/selenium.egg-info/PKG-INFO 2018-05-08 16:37:44.000000000 +0200 +++ new/selenium-3.13.0/selenium.egg-info/PKG-INFO 2018-06-25 21:49:39.000000000 +0200 @@ -1,11 +1,12 @@ Metadata-Version: 1.1 Name: selenium -Version: 3.12.0 +Version: 3.13.0 Summary: Python bindings for Selenium Home-page: https://github.com/SeleniumHQ/selenium/ Author: UNKNOWN Author-email: UNKNOWN License: Apache 2.0 +Description-Content-Type: UNKNOWN Description: ====================== Selenium Client Driver ====================== @@ -24,7 +25,7 @@ +-----------+--------------------------------------------------------------------------------------+ | **Dev**: | https://github.com/SeleniumHQ/Selenium | +-----------+--------------------------------------------------------------------------------------+ - | **PyPI**: | https://pypi.python.org/pypi/selenium | + | **PyPI**: | https://pypi.org/project/selenium/ | +-----------+--------------------------------------------------------------------------------------+ | **IRC**: | **#selenium** channel on freenode | +-----------+--------------------------------------------------------------------------------------+ @@ -43,7 +44,7 @@ pip install -U selenium - Alternately, you can download the source distribution from `PyPI <http://pypi.python.org/pypi/selenium>`_ (e.g. selenium-3.12.0.tar.gz), unarchive it, and run:: + Alternately, you can download the source distribution from `PyPI <https://pypi.org/project/selenium/#files>`_ (e.g. selenium-3.13.0.tar.gz), unarchive it, and run:: python setup.py install @@ -135,11 +136,11 @@ However, to use Selenium Webdriver Remote or the legacy Selenium API (Selenium-RC), you need to also run the Selenium server. The server requires a Java Runtime Environment (JRE). - Download the server separately, from: http://selenium-release.storage.googleapis.com/3.12/selenium-server-standalone-3.12.0.jar + Download the server separately, from: http://selenium-release.storage.googleapis.com/3.13/selenium-server-standalone-3.13.0.jar Run the server from the command line:: - java -jar selenium-server-standalone-3.12.0.jar + java -jar selenium-server-standalone-3.13.0.jar Then run your Python client scripts. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/selenium-3.12.0/setup.py new/selenium-3.13.0/setup.py --- old/selenium-3.12.0/setup.py 2018-05-08 15:56:18.000000000 +0200 +++ new/selenium-3.13.0/setup.py 2018-06-25 21:46:55.000000000 +0200 @@ -29,7 +29,7 @@ setup_args = { 'cmdclass': {'install': install}, 'name': 'selenium', - 'version': "3.12.0", + 'version': "3.13.0", 'license': 'Apache 2.0', 'description': 'Python bindings for Selenium', 'long_description': open(join(abspath(dirname(__file__)), "README.rst")).read(),
