How to check if Element is present on page using Laravel Dusk

In your test many times you will need to check if a particular element exists on the page and you would want to make it your assertion point. You might need to do this when you are generating the element dynamically on a given condition.

Here is how you can do it, Laravel-Dusk provides two straight-forward method assertVisible and assertPresent.

assertVisible makes sure the element is in the visible view-port of the web-page. assertPresent makes sure the element exists in the source code of the page.

You can pass in any html selector to check if the element if visible.

Livewire Component Library
/** @test */
public function assert_that_home_page_opens_up(){
    $this->browse(function ($browser) {

However you can only make use of these methods if you have a handy selectory (class or id) attached to the element that you are looking for.

Host Laravel Application on DigitalOcean

Use coupon 5balloons on this Cloudways Affiliate URL to get special discount.

What if you want to check if your element exists at a particular xPath ?

You can make sure of driver instance on $browser object to directly call the methods provided by Facebook Web-driver API.

$this->assertTrue(count($browser->driver->findElements(WebDriverBy::xpath('//*[@id="home-wrapper"]'))) > 0);

The above code will assert if the element at particular xpath exists or not.

If you want to assert for a particular number of elements you can do this.

$this->assertEquals('3', count($browser->driver->findElements(WebDriverBy::xpath('//*[@id="home-wrapper"]'))));

Check if element does not exists

$this->assertEquals('0', count($browser->driver->findElements(WebDriverBy::xpath('//*[@id="home-wrapper"]'))));

Make sure to include the WebDriverBy class object by Facebook

use Facebook\WebDriver\WebDriverBy;

Thats about it!

Udemy Laravel Dusk Course

Laravel Dusk Beginner to Advanced

Video Course on Automation Testing, Web Scraping and Creating Bots using Dusk

> 60% OFF

Limited Time Offer

Learn More

Site Footer