Releases: seleniumbase/SeleniumBase
Releases · seleniumbase/SeleniumBase
4.3.1 - Clean up resource files that have CDN links
Clean up resource files that have CDN links
- This resolves #1490
What's Changed
Full Changelog: v4.3.0...v4.3.1
4.3.0 - Undetected-Chromedriver Mode
Undetected-Chromedriver Mode
- Add option
--ucfor using an undetectable chromedriver.
--> Lets you evade bot-detection on certain websites.
--> Uses a modified version of undetected-chromedriver
--> This resolves #1483 sbase get chromedrivershould detect the version needed.
--> This resolves #1488
What's Changed
Full Changelog: v4.2.0...v4.3.0
4.2.0 - High-level options and reliability
High-level options and reliability
- Add option to change Chromium's
pageLoadStrategy.
--> This resolves #1477 - Add option to skip JS waits, which are used in multiple methods.
--> This resolves #1478 - Improve reliability.
--> This resolves #1476 - Add a retry when downloading a driver if that fails.
--> This resolves #1481 - Include more hard-coded options for
--env=ENV.
--> This resolves #1480 - Update translations of Demo Mode assertion messages.
--> This resolves #1479
What's Changed
Full Changelog: v4.1.1...v4.2.0
4.1.1 - Convert numbers to strings before performing text asserts
Convert numbers to strings before performing text asserts
- Convert text args to strings before performing text asserts.
--> f512989
--> This resolves #1474 - Refresh Python dependencies.
--> 5e948cb
What's Changed
Full Changelog: v4.1.0...v4.1.1
4.1.0 - Add ways to disable "beforeunload"
4.0.1 - Mostly Bug Fixes
Mostly Bug Fixes
- Fix
behaveissue that can occur during--headlessmode whenXvfbis not present.
--> This resolves #1467 - Fix intermittent
unknown error: net::ERR_CONNECTION_CLOSEDonself.open(url).
--> This resolves #1469 - Fix test address in
basic_test_info.txtfor subfolder tests.
--> This resolves #1468 - Include creation of
case_summary.mdin console output.
--> This resolves #1470 - Refresh Python dependencies.
--> 2d70b0b
What's Changed
Full Changelog: v4.0.0...v4.0.1
4.0.0 - Case Plans / and more
SeleniumBase 4 / Case Plans / and more
- New Feature: SeleniumBase Case Plans - Test Case Management Software.
--> This resolves #1440
--> Documentation: help_docs/case_plans.md os.path.join()should always be used when joining paths.
--> This resolves #1450
--> This resolves #1451- Scrolling to elements should include horizontal scrolling as needed.
--> This resolves #1459 - Skip setting the
w3coption inbrowser_launcher.py.
--> This avoids deprecation warnings that are new inselenium4.4.0and newer. - Make improvements to Recorder Mode.
--> Better selector generation and script output. - Using
self.get_text()on a textarea should return the value property.
--> This resolves #1457 - Fix issue with log folder generation when a test using the
sbfixture lives outside the root folder.
--> This resolves #1454 - Before a drag-and-drop action, scroll to the drop selector instead of the drag selector.
--> This prevents certain problems from happening when the two selectors are far apart. - Update line-spacing in SeleniumBase GUI Apps such as Commander/GUI and Behave GUI.
--> This prevents an issue on Windows where the lines were spaced too far apart. - Include Level-0 visual diff failures for the
side_by_side.htmlfiles.
--> This resolves #1455 load_html_string()should parse out comment lines that start with//.
--> This resolves #1458- Add method:
get_select_options()to create a list from the text ofselectoptionelements.
--> This resolves #1460 - When running
pytestwith--collect-only/--co, skip unnecessary plugin steps.
--> This resolves #1461 - Handle extension capabilities in the desired capabilities flow.
--> This resolves #1453
SeleniumBase Case Plans 📒🗂️
📒 SeleniumBase Case Plans is Test Case Management Software that uses Markdown tables for displaying test plans directly in GitHub (and other source code management systems that support Markdown format).
📒 The case_summary.md file is generated from individual Case Plans that exist in the case_plans/ folders of your repository. (See the example below to learn how the Case Summary file may look.)
Example of a
case_summary.mdfile:
Summary of existing Case Plans
| 🔵 | 8 | Case Plans with customized tables |
| ⭕ | 2 | Case Plans using boilerplate code |
| 🚧 | 1 | Case Plan that is missing a table |
🔎 (Click rows to expand) 🔍
🔵 basic_test.py::MyTestClass::test_basics
| # | Step Description | Expected Result |
|---|---|---|
| 1 | Log in to https://www.saucedemo.com with standard_user. |
Login was successful. |
| 2 | Click on the Backpack ADD TO CART button. |
The button text changed to REMOVE. |
| 3 | Click on the cart icon. | The Backpack is seen in the cart. |
| 4 | Remove the Backpack from the cart. |
The Backpack is no longer in the cart. |
| 5 | Log out from the website. | Logout was successful. |
🔵 list_assert_test.py::MyTestClass::test_assert_list_of_elements
| # | Step Description | Expected Result |
|---|---|---|
| 1 | Open https://seleniumbase.io/demo_page. | |
| 2 | Use self.assert_elements_present("head", "style", "script") to verify that multiple elements are present in the HTML. |
The assertion is successful. |
| 3 | Use self.assert_elements("h1", "h2", "h3") to verify that multiple elements are visible. |
The assertion is successful. |
| 4 | Use self.assert_elements(["#myDropdown", "#myButton", "#svgRect"]) to verify that multiple elements are visible. |
The assertion is successful. |
⭕ locale_code_test.py::LocaleCodeTests::test_locale_code
| # | Step Description | Expected Result |
|---|---|---|
| 1 | Perform Action 1 | Verify Action 1 |
| 2 | Perform Action 2 | Verify Action 2 |
🔵 my_first_test.py::MyTestClass::test_swag_labs
| # | Step Description | Expected Result |
|---|---|---|
| 1 | Log in to https://www.saucedemo.com with standard_user. |
Login was successful. |
| 2 | Click on the Backpack ADD TO CART button. |
The button text changed to REMOVE. |
| 3 | Click on the cart icon. | The Backpack is seen in the cart. |
| 4 | Click on the CHECKOUT button. Enter user details and click CONTINUE. |
The Backpack is seen in the cart on the CHECKOUT: OVERVIEW page. |
| 5 | Click on the FINISH button. |
There is a Thank You message and a Pony Express delivery logo. |
| 6 | Log out from the website. | Logout was successful. |
⭕ proxy_test.py::ProxyTests::test_proxy
| # | Step Description | Expected Result |
|---|---|---|
| 1 | Perform Action 1 | Verify Action 1 |
| 2 | Perform Action 2 | Verify Action 2 |
🔵 shadow_root_test.py::ShadowRootTest::test_shadow_root
| # | Step Description | Expected Result |
|---|---|---|
| 1 | Open https://seleniumbase.io/other/shadow_dom. Click each tab and verify the text contained within the Shadow Root sections. |
Tab 1 text: Content Panel 1 Tab 2 text: Content Panel 2 Tab 3 text: Content Panel 3 |
🚧 test_agent.py::UserAgentTests::test_user_agent
🔵 test_calculator.py::CalculatorTests::test_6_times_7_plus_12_equals_54
| # | Step Description | Expected Result |
|---|---|---|
| 1 | Open https://seleniumbase.io/apps/calculator. Perform the following calculation: 6 × 7 + 12 |
The output is 54 after pressing = |
🔵 test_demo_site.py::DemoSiteTests::test_demo_site
| # | Step Description | Expected Result |
|---|---|---|
| 1 | Open https://seleniumbase.io/demo_page | |
| 2 | Assert the title of the current web page. Assert that a given element is visible on the page. Assert that a text substring appears in an element's text. |
The assertions were successful. |
| 3 | Type text into various text fields and then verify. | The assertions were successful. |
| 4 | Verify that a hover dropdown link changes page text. | The assertion was successful. |
| 5 | Verify that a button click changes text on the page. | The assertion was successful. |
| 6 | Verify that an SVG element is located on the page. | The assertion was successful. |
| 7 | Verify that a slider control updates a progress bar. | The assertion was successful. |
| 8 | Verify that a "select" option updates a meter bar. | The assertion was successful. |
| 9 | Assert an element located inside an iFrame. | The assertion was successful. |
| 10 | Assert text located inside an iFrame. | The assertion was successful. |
| 11 | Verify that clicking a radio button selects it. | The assertion was successful. |
| 12 | Verify that clicking an empty checkbox makes it selected. | The assertion was successful. |
| 13 | Verify clicking on multiple elements with one call. | The assertions were successful. |
| 14 | Verify that clicking an iFrame checkbox selects it. | The assertions were successful. |
| 15 | Verify that Drag and Drop works. | The assertion was successful. |
| 16 | Assert link text. | The assertion was successful. |
| 17 | Verify clicking on link text. | The action was successful. |
| 18 | Assert exact text in an element. | The assertion was successful. |
| 19 | Highlight a page element. | The action was successful. |
| 20 | Verify that Demo Mode works. | The assertion was successful. |
🔵 test_login.py::SwagLabsLoginTests::test_swag_labs_login
| # | Step Description | Expected Result |
|---|---|---|
| 1 | Log in to https://www.saucedemo.com with standard_user. |
Login was successful. |
| 2 | Log out from the website. | Logout was successful. |
🔵 test_mfa_login.py::TestMFALogin::test_mfa_login
| # | Step Description | Expected Result |
|---|---|---|
| 1 | Open https://seleniumbase.io/realworld/login Enter credentials and Sign In. |
Sign In was successful. |
| 2 | Click the This Page button. Save a screenshot to the logs. |
|
| 3 | Click to Sign Out | Sign Out was successful. |
📒 Before you ...
3.5.11 - EdgeDriver Manager script update and docs
EdgeDriver Manager script update and docs
3.5.10 - Handle clicks that close the active window
Handle clicks that close the active window
- Handle clicks that close the active window
--> This resolves #1444
--> This resolves #1442 - Refresh Python dependencies
