DEV Community

Cover image for Check a URL with Selenium IDE
Katie
Katie

Posted on • Originally published at katiekodes.com on

9 2

Check a URL with Selenium IDE

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

Oldest comments (0)

👋 Kindness is contagious

Engage with a wealth of insights in this thoughtful article, cherished by the supportive DEV Community. Coders of every background are encouraged to bring their perspectives and bolster our collective wisdom.

A sincere “thank you” often brightens someone’s day—share yours in the comments below!

On DEV, the act of sharing knowledge eases our journey and forges stronger community ties. Found value in this? A quick thank-you to the author can make a world of difference.

Okay