Changelogs » Seleniumbase

Seleniumbase

1.18.0

Improve Messenger methods and a few other things
* Improve methods for posting in-test messages with JS
* Update pytest-html to >= 1.20.0
* Add an example that can be run without the Pytest unittest runner (AKA pure Python)

1.17.22

Update pytest requirements:

* pytest>=4.1.1
* pytest-rerunfailures>=6.0
* pytest-xdist>=1.26.0

1.17.21

Update console scripts and traffic-generation code
* Autodetect "source" for activating virtualenv commands in bash
* Update seleniumbase console scripts menu
* Update traffic-generation code

1.17.20

Allow a custom timeout for wait_for_link_text_present()
Allow a custom timeout for wait_for_link_text_visible()

1.17.19

Update dependencies:
* pytest>=4.1.0
* pytest-cov>=2.6.1
* requests==2.20.1

1.17.18

* Update the Selenium IDE conversion tool
* Also update a method for clicking link text inside of dropdown menus

1.17.17

Update virtualenv script and manifest file:
* Fix echo commands in a virtualenv Windows batch file
* Update the manifest file

1.17.16

Simplify virtualenv installation by using shell scripts

1.17.15

Update pytest and pytest-xdist requirements
* pytest to 4.0.2 or greater
* pytest-xdist to 1.25.0 or greater

1.17.14

Add submit(SELECTOR) method to simplify driver.find_element_by_*(SELECTOR).submit()

1.17.13

Update console scripts, styling, and simplify installation

1.17.12

Update the SeleniumBase console scripts interface

1.17.11

Update example tests
Add test suite for demoing pytest markers

1.17.10

Update seleniumbase console scripts

Adding:
bash
seleniumbase download server

This command downloads the latest Selenium Server Standalone JAR file from https://www.seleniumhq.org/download/

1.17.9

Add click_visible_elements(selector) method

Finds all matching page elements and clicks visible ones in order.
If a click reloads or opens a new page, the clicking will stop.
Works best for actions such as clicking all checkboxes on a page.

Example:
python
self.click_visible_elements('input[type="checkbox"]')

1.17.8

(Works ONLY for Chrome (non-headless) and Chrome-based browsers such as Opera right now.)

Add method/option to check for JavaScript errors on page loads:
* New method:
python
self.assert_no_js_errors()

* New command line option (to automatically check for JavaScript errors after every page load):
bash
--check_js

Ex:
bash
pytest my_first_test.py --browser=chrome --check_js

1.17.7

Update the Selenium IDE script converter tool

1.17.6

Set default selector to ``html`` for text-search methods.
(It's also optional now.)

Now you can do something like this:
python
self.assert_text("SOME TEXT")

instead of this:
python
self.assert_text("SOME TEXT", "html")

(Default selector type for selectors: ``by=By.CSS_SELECTOR``)

Methods effected:
``assert_text``
``is_text_visible``
``wait_for_text``
``find_text``
``delayed_assert_text``
``wait_for_text_visible``
``assert_text_visible``

Due to keeping backwards compatibility, a few older methods remain that do the same thing as newer methods. (Method names were shortened from their previous versions.)

1.17.5

Remote desired capabilities

Allow users to specify browser desired capabilities for webdriver when running SeleniumBase tests on a remote SeleniumGrid server such as [BrowserStack](https://www.browserstack.com/automate/capabilities), [Sauce Labs](https://wiki.saucelabs.com/display/DOCS/Platform+Configurator/), or [TestingBot](https://testingbot.com/support/other/test-options).

A sample run command may look like this: (When run from the ``SeleniumBase/examples/`` folder):

bash
pytest my_first_test.py --browser=remote --server=username:keyhub.browserstack.com --port=80 --cap_file=capabilities/sample_cap_file_BS.py


A regex parser was built into SeleniumBase to capture all lines from the specified desired capabilities file in the following formats:
``'KEY': 'VALUE'``
``caps['KEY'] = "VALUE"``
(Each pair must be on a separate line. You can interchange single and double quotes.)

You can also swap ``--browser=remote`` with an actual browser, eg ``--browser=chrome``, which will combine the default SeleniumBase desired capabilities with those that were specified in the capabilities file when using ``--cap_file=FILE.py``. (For example, you'll need default SeleniumBase desired capabilities when using a proxy server, which is not the same as the Selenium Grid server.)

1.17.4

Fix edge case with BaseCase tearDown() method
* If running tests with ``--pdb``, tests would fail if there were no errors. Now fixed.

1.17.3

Upgrade selenium, pytest, urllib3, and pyotp

1.17.2

Upgrade flake8 version and make fixes based on it

1.17.1

MasterQA Updates
* Edit Theme
* Improve Reliability

1.17.0

MasterQA Upgrade
* Use [jquery-confirm](http://craftpip.github.io/jquery-confirm/) for MasterQA page-checking verifications

1.16.17

Fix issue with proxy server auth in chrome headless mode.

When using a proxy server that has authentication with Chrome in headless mode, SeleniumBase will now use PyVirtualDisplay (already implemented in https://github.com/seleniumbase/SeleniumBase/blob/master/seleniumbase/fixtures/base_case.py) rather than using Chrome's built-in headless mode because Chrome doesn't allow extensions when using headless mode. This assumes that the user's system already supports Xvfb (the headless display system) in order to run with PyVirtualDisplay.

See https://bugs.chromium.org/p/chromium/issues/detail?id=706008 , where a member from the Chromium team says: "Headless mode doesn't currently support extensions".

1.16.16

Handle an edge case ("Permission denied") when using a proxy server with auth

1.16.15

Update pytest version and replace deprecated method

1.16.14

Shepherd tour update
* Mainly adding a "Back" button to Shepherd website tours

1.16.13

Method updates
* Add self.find_elements()
* Rename self.pick_select_option_by_*() methods to self.select_option_by_*() methods

1.16.12

Case insensitive console scripts

Now, you can do something like:

seleniumbase install ChromeDriver


Before, you had to do this:

seleniumbase install chromedriver