Skip to content

Releases: seleniumbase/SeleniumBase

4.3.2 - Undetected-Chromedriver Mode updates

05 Sep 20:16
3f5515b
Compare
Choose a tag to compare

Undetected-Chromedriver Mode updates

  • Properly parse preferences with undetected-chromedriver
    --> This resolves #1492
  • If using both UC Mode (--uc) and Headless Mode (--headless), then try using Xvfb on Linux; otherwise skip UC Mode while still using Headless Mode.
  • Refresh Python dependencies.
    --> (Refresh Python dependencies)

What's Changed

Full Changelog: v4.3.1...v4.3.2

4.3.1 - Clean up resource files that have CDN links

02 Sep 06:17
e496832
Compare
Choose a tag to compare

Clean up resource files that have CDN links

What's Changed

  • Clean up resource files that have CDN links by @mdmintz in #1491

Full Changelog: v4.3.0...v4.3.1

4.3.0 - Undetected-Chromedriver Mode

01 Sep 20:44
577c8e5
Compare
Choose a tag to compare

Undetected-Chromedriver Mode

  • Add option --uc for using an undetectable chromedriver.
    --> Lets you evade bot-detection on certain websites.
    --> Uses a modified version of undetected-chromedriver
    --> This resolves #1483
  • sbase get chromedriver should detect the version needed.
    --> This resolves #1488

What's Changed

  • Add option "--uc" for using an undetectable chromedriver by @mdmintz in #1489

Full Changelog: v4.2.0...v4.3.0

4.2.0 - High-level options and reliability

27 Aug 02:18
512b9db
Compare
Choose a tag to compare

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

24 Aug 14:42
faeb571
Compare
Choose a tag to compare

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

  • Convert numbers to strings before performing text asserts by @mdmintz in #1475

Full Changelog: v4.1.0...v4.1.1

4.1.0 - Add ways to disable "beforeunload"

24 Aug 01:28
94e9f56
Compare
Choose a tag to compare

Add ways to disable beforeunload

  • Add ways to disable beforeunload
    --> aeb36bf
    --> This resolves #1472
  • Refresh Python dependencies
    --> c4ff004

What's Changed

Full Changelog: v4.0.1...v4.1.0

4.0.1 - Mostly Bug Fixes

23 Aug 02:00
13e689b
Compare
Choose a tag to compare

Mostly Bug Fixes

  • Fix behave issue that can occur during --headless mode when Xvfb is not present.
    --> This resolves #1467
  • Fix intermittent unknown error: net::ERR_CONNECTION_CLOSED on self.open(url).
    --> This resolves #1469
  • Fix test address in basic_test_info.txt for subfolder tests.
    --> This resolves #1468
  • Include creation of case_summary.md in 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

19 Aug 05:33
8f02749
Compare
Choose a tag to compare

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 w3c option in browser_launcher.py.
    --> This avoids deprecation warnings that are new in selenium 4.4.0 and 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 sb fixture 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.html files.
    --> 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 of select option elements.
    --> This resolves #1460
  • When running pytest with --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.md file:

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 ...

Read more

3.5.11 - EdgeDriver Manager script update and docs

05 Aug 22:35
d3abd57
Compare
Choose a tag to compare

3.5.10 - Handle clicks that close the active window

04 Aug 18:23
63c29c4
Compare
Choose a tag to compare