TheA functional test such as:
This is when Selenium is useful. You create your scenario, and Selenium runs it again and again, checking that the test still passes. A similar scenario concerns system testing; although I don't expect Selenium to be very present here, it's not excluded that some teams rely on Selenium for this sort of testing.
If your project has requirements, a bunch of Selenium tests will be organized around those requirements, like in the example in my answer.
If not, each of those tests will just be a possible scenario which could get terribly wrong, similarly to what you do when choosing what unit tests to create. Just like in unit tests, you will test some method for input value 3 (ordinary case), 0 (edge case), -1 (exceptional case) and NaN (exceptional case), Selenium tests can encompass very diverse situations, such as:
The user purchases a product. That's all.
This is also probably the most crucial test one can have for an e-commerce website: if users can't purchase, it would be slightly problematic.
The user adds a product to the cart, waits until the product is not available any longer, and then tries to purchase it.
The user adds a product, then removes it, then presses Back, and tries to purchase.
The user bruteforces the website by adding every available product with maximum quantities in the shortest possible amount of time, and tries to purchase that.
The user starts purchasing a product, but leaves when the transaction is running, and never returns.