Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

release 3.5.12 #4156

Merged
merged 2 commits into from
Jan 25, 2024
Merged

release 3.5.12 #4156

merged 2 commits into from
Jan 25, 2024

Conversation

kobenguyent
Copy link
Collaborator

@kobenguyent kobenguyent commented Jan 25, 2024

3.5.12

❤️ Thanks all to those who contributed to make this release! ❤️

🛩️ Features

  • feat: upgrade wdio (feat: upgrade wdio #4123) - by @kobenguyent

    🛩️ With the release of WebdriverIO version v8.14.0, and onwards, all driver management hassles are now a thing of the past 🙌. Read more here.
    One of the significant advantages of this update is that you can now get rid of any driver services you previously had to manage, such as
    wdio-chromedriver-service, wdio-geckodriver-service, wdio-edgedriver-service, wdio-safaridriver-service, and even @wdio/selenium-standalone-service.

For those who require custom driver options, fear not; WebDriver Helper allows you to pass in driver options through custom WebDriver configuration.
If you have a custom grid, use a cloud service, or prefer to run your own driver, there's no need to worry since WebDriver Helper will only start a driver when there are no other connection information settings like hostname or port specified.

Example:

{
   helpers: {
     WebDriver : {
       smartWait: 5000,
       browser: "chrome",
       restart: false,
       windowSize: "maximize",
       timeouts: {
         "script": 60000,
         "page load": 10000
       }
     }
   }
}

Testing Chrome locally is now more convenient than ever. You can define a browser channel, and WebDriver Helper will take care of downloading the specified browser version for you.
For example:

{
   helpers: {
     WebDriver : {
       smartWait: 5000,
       browser: "chrome",
       browserVersion: '116.0.5793.0', // or 'stable', 'beta', 'dev' or 'canary'
       restart: false,
       windowSize: "maximize",
       timeouts: {
         "script": 60000,
         "page load": 10000
       }
     }
   }
}

Running with devtools protocol

{
   helpers: {
     WebDriver : {
       url: "http://localhost",
       browser: "chrome",
       devtoolsProtocol: true,
       desiredCapabilities: {
         chromeOptions: {
           args: [ "--headless", "--disable-gpu", "--no-sandbox" ]
         }
       }
     }
   }
}

Find an element with exact text

locate('button').withTextEquals('Add');

Waits for number of tabs.

I.waitForNumberOfTabs(2);

Currently I.say is not added into the Test.steps array. This PR aims to add this to steps array so that we could use it to print steps in ReportPortal for instance.

Screenshot 2024-01-19 at 15 41 34

🐛 Bug Fixes

Improve the error message for seeElement, dontSeeElement, seeElementInDOM, dontSeeElementInDOM

The current error message doesn't really help when debugging issue also causes some problem described in #4140

Actual

      expected visible elements '[ELEMENT]' to be empty
      + expected - actual

      -[
      -  "ELEMENT"
      -]
      +[]

Updated

     Error: Element "h1" is still visible
      at seeElementError (lib/helper/errors/ElementAssertion.js:9:9)
      at Playwright.dontSeeElement (lib/helper/Playwright.js:1472:7)
Scenario('Verify getting list of users', async () => {
let res = await I.getUserPerPage(2);
res.data = []; // this line causes the issue
await I.expectEqual(res.data.data[0].id, 7);
});

at this time, res.data.data[0].id would throw undefined error and somehow the test is missing all its steps.

process.env.profile is the string "undefined" instead of type undefined when no --profile is specified in the mode "run-multiple"

Helpers: Playwright
Plugins: screenshotOnFail, tryTo, retryFailedStep, retryTo, eachElement

Repro --
[1]  Starting recording promises
Timeouts:
 [Session] Starting singleton browser session
Reproduce issue
I am on page "https://example.com"
 [Browser:Error] Failed to load resource: the server responded with a status of 404 ()
 [New Context] {}
user1: I am on page "https://example.com"
user1: I execute script () => {
return { width: window.screen.width, height: window.screen.height };
}
sessionScreen is {"width":375,"height":667}
 OK in 1890ms


OK  | 1 passed   // 4s

deprecate some JSON Wire Protocol commands: grabGeoLocation, setGeoLocation

Locator issue due to the lib changes

The locator locate(".ps-menu-button").withText("Authoring").inside(".ps-submenu-root:nth-child(3)") is translated to
3.5.8: //*[contains(concat(' ', normalize-space(./@class), ' '), ' ps-menu-button ')][contains(., 'Authoring')][ancestor::*[(contains(concat(' ', normalize-space(./@class), ' '), ' ps-submenu-root ') and count(preceding-sibling::*) = 2)]] and works well
3.5.11: //*[contains(@class, "ps-menu-button")][contains(., 'Authoring')][ancestor::*[3][contains(@class, "ps-submenu-root")]] and doesn't work (no clickable element found). Even if you test it in browser inspector, it doesn't work.

@kobenguyent kobenguyent merged commit 439364e into 3.x Jan 25, 2024
14 checks passed
@kobenguyent kobenguyent deleted the release-3.5.12 branch January 25, 2024 14:04
kobenguyent added a commit that referenced this pull request Feb 2, 2024
* updated performSwipe with w3c protocol

* chore(deps-dev): bump @wdio/utils from 8.27.2 to 8.28.8 (#4152)

* fix: I.say would be added to Test.steps object (#4145)

* release 3.5.12 (#4156)

* release 3.5.12

* fix(webapi): selectOption method (#4157)

trim text content value

* DOC: Update contributor faces

* fixed typescript parameter inputs count

* chore(deps-dev): bump testcafe from 3.3.0 to 3.5.0 (#4160)

Bumps [testcafe](https://github.com/DevExpress/testcafe) from 3.3.0 to 3.5.0.
- [Release notes](https://github.com/DevExpress/testcafe/releases)
- [Changelog](https://github.com/DevExpress/testcafe/blob/master/CHANGELOG.md)
- [Commits](DevExpress/testcafe@v3.3.0...v3.5.0)

---
updated-dependencies:
- dependency-name: testcafe
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* updated performSwipe with w3c protocol

* fixed typescript parameter inputs count

* chore(deps-dev): bump @wdio/sauce-service from 8.27.0 to 8.29.1 (#4161)

* removed elementId parameter

* updated performSwipe with w3c protocol

* fixed typescript parameter inputs count

* removed elementId parameter

* run mobile tests

* run mobile tests

* run mobile tests

* tweak ci

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: KobeN <7845001+kobenguyent@users.noreply.github.com>
Co-authored-by: Roman Diachenko <dyaroman@gmail.com>
Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: kobenguyent <kobenguyent@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant