Check a URL with Selenium IDE

Katie - Apr 6 '22 - - Dev Community

It took me a while to figure out how to get Selenium IDE to click a link, wait for the new tab's page-load to settle down, and validate the URL of the new page, but I did it.

Overall, I'm pretty satisfied with Selenium IDE. If you have business processes that involve visiting a web site and clicking around a bunch to "make sure everything looks good," it's a nifty tool for pretending to be yourself, only sped up really really fast.

Steps

The one and only test present in this Selenium IDE project runs through 8 steps:

  1. Open the Katie Kodes page on Ko-Fi
    • Command: open
    • Target: katiekodes (on top of a test base URL of https://ko-fi.com/)
  2. Click the Katie Kodes blog link
    • Command: click
    • Modify new window configuration -> New Window Configuration Enabled: checked, Window Name: blog_new_tab, Timeout: 2000, click "Confirm"
    • Target: xpath=(//a[@target="_blank" and contains(@href, "katiekodes.com")])[1]
  3. Close the original Ko-Fi tab
    • Command: close
  4. Make sure we are viewing the new blog tab
    • Command: select window
    • Target: handle=${blog_new_tab}
  5. Wait for something bloggey to be on the screen
    • Command: wait for element present
    • Target: xpath=(//a[contains(@href, "ko-fi.com")])[1]
    • Value: 30000
    • (Technically, this isn't required for this example, but the situation I was dealing with opened a new tab and then handed off cookies through about 4 different URLs before settling down on one, so I decided to validate that things were "all done" by looking for a weird, distinctive HTML element I knew only existed in the final, settled page.)
  6. Save the blog URL to a variable
    • Command: execute script
    • Target: return document.URL;
    • Value: theurl
  7. Assert that the blog URL is correct
    • Command: assert
    • Target: theurl
    • Value: https://katiekodes.com/
  8. Close the web browser
    • Command: close

Code

To try it yourself, save this code as Selenium Demo.side on your computer and open it as a project with the Selenium IDE browser plugin, then click the "Validate the new-tab URL" test and click "Run current test."

{
  "id": "ca2c89aa-50b1-4eea-91e6-c2e01ae6cb0a",
  "version": "2.0",
  "name": "Selenium demo",
  "url": "https://ko-fi.com/",
  "tests": [{
    "id": "e363b287-2838-40db-b1b8-57dd100af3a5",
    "name": "Validate the new-tab URL",
    "commands": [{
      "id": "712005e0-c6ec-4f10-9162-da97499d5e23",
      "comment": "Open Katie Kodes Ko-Fi donations page",
      "command": "open",
      "target": "katiekodes",
      "targets": [],
      "value": ""
    }, {
      "id": "9eaf4f01-f179-4c19-855c-4eb9a1968158",
      "comment": "Click the Katie Kodes blog link",
      "command": "click",
      "target": "xpath=(//a[@target=\"_blank\" and contains(@href, \"katiekodes.com\")])[1]",
      "targets": [],
      "value": "",
      "opensWindow": true,
      "windowHandleName": "blog_new_tab",
      "windowTimeout": 2000
    }, {
      "id": "3c0233e1-b2d4-4c82-b806-7d9133e94e96",
      "comment": "Close the original Ko-Fi tab",
      "command": "close",
      "target": "",
      "targets": [],
      "value": ""
    }, {
      "id": "5683db68-8b78-48a7-b959-84ebccd70119",
      "comment": "Make sure we are viewing the new blog tab",
      "command": "selectWindow",
      "target": "handle=${blog_new_tab}",
      "targets": [],
      "value": ""
    }, {
      "id": "a37060a8-8e9b-4848-9068-f4a1fcb5f2ca",
      "comment": "Wait for something bloggey to be on the screen",
      "command": "waitForElementPresent",
      "target": "xpath=(//a[contains(@href, \"ko-fi.com\")])[1]",
      "targets": [],
      "value": "30000"
    }, {
      "id": "ff897cc8-d4f0-4762-8695-d9551d7f4e96",
      "comment": "Save the blog URL to a variable",
      "command": "executeScript",
      "target": "return document.URL;",
      "targets": [],
      "value": "theurl"
    }, {
      "id": "b3b8f50b-4266-4c68-902b-33e150279274",
      "comment": "Assert that the blog URL is correct",
      "command": "assert",
      "target": "theurl",
      "targets": [],
      "value": "https://katiekodes.com/"
    }, {
      "id": "68c8b88e-84bb-4c80-b914-3a0278995967",
      "comment": "Close the web browser",
      "command": "close",
      "target": "",
      "targets": [],
      "value": ""
    }]
  }],
  "suites": [{
    "id": "398fd234-8bcf-48ff-ab6c-4785b1ab469f",
    "name": "My first suite",
    "persistSession": false,
    "parallel": false,
    "timeout": 300,
    "tests": ["e363b287-2838-40db-b1b8-57dd100af3a5"]
  }],
  "urls": ["https://ko-fi.com/"],
  "plugins": []
}
Enter fullscreen mode Exit fullscreen mode
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .