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)
Update pytest requirements:
Update console scripts and traffic-generation code
* Autodetect "source" for activating virtualenv commands in bash
* Update seleniumbase console scripts menu
* Update traffic-generation code
Allow a custom timeout for wait_for_link_text_present()
Allow a custom timeout for wait_for_link_text_visible()
* Update the Selenium IDE conversion tool
* Also update a method for clicking link text inside of dropdown menus
Update virtualenv script and manifest file:
* Fix echo commands in a virtualenv Windows batch file
* Update the manifest file
Simplify virtualenv installation by using shell scripts
Update pytest and pytest-xdist requirements
* pytest to 4.0.2 or greater
* pytest-xdist to 1.25.0 or greater
Add submit(SELECTOR) method to simplify driver.find_element_by_*(SELECTOR).submit()
Update console scripts, styling, and simplify installation
Update the SeleniumBase console scripts interface
Update example tests
Add test suite for demoing pytest markers
Update seleniumbase console scripts
seleniumbase download server
This command downloads the latest Selenium Server Standalone JAR file from https://www.seleniumhq.org/download/
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.
(Works ONLY for Chrome (non-headless) and Chrome-based browsers such as Opera right now.)
* New method:
pytest my_first_test.py --browser=chrome --check_js
Update the Selenium IDE script converter tool
Set default selector to ``html`` for text-search methods.
(It's also optional now.)
Now you can do something like this:
instead of this:
self.assert_text("SOME TEXT", "html")
(Default selector type for selectors: ``by=By.CSS_SELECTOR``)
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.)
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):
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:
``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.)
Fix edge case with BaseCase tearDown() method
* If running tests with ``--pdb``, tests would fail if there were no errors. Now fixed.
Upgrade selenium, pytest, urllib3, and pyotp
Upgrade flake8 version and make fixes based on it
* Edit Theme
* Improve Reliability
* Use [jquery-confirm](http://craftpip.github.io/jquery-confirm/) for MasterQA page-checking verifications
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".
Handle an edge case ("Permission denied") when using a proxy server with auth
Update pytest version and replace deprecated method
Shepherd tour update
* Mainly adding a "Back" button to Shepherd website tours
* Add self.find_elements()
* Rename self.pick_select_option_by_*() methods to self.select_option_by_*() methods
Case insensitive console scripts
Now, you can do something like:
seleniumbase install ChromeDriver
Before, you had to do this:
seleniumbase install chromedriver