github.com/web-platform-tests/wpt.fyi@v0.0.0-20240530210107-70cf978996f1/webdriver/test_runs_test.go (about)

     1  // +build large
     2  
     3  package webdriver
     4  
     5  import (
     6  	"fmt"
     7  	"testing"
     8  
     9  	"github.com/stretchr/testify/assert"
    10  	"github.com/tebeka/selenium"
    11  )
    12  
    13  func TestTestRuns(t *testing.T) {
    14  	runWebdriverTest(t, func(t *testing.T, app AppServer, wd selenium.WebDriver) {
    15  		// Navigate to the wpt.fyi homepage.
    16  		if err := wd.Get(app.GetWebappURL("/test-runs")); err != nil {
    17  			assert.FailNow(t, fmt.Sprintf("Error navigating to homepage: %s", err.Error()))
    18  		}
    19  
    20  		// Wait for the results view to load.
    21  		runsLoadedCondition := func(wd selenium.WebDriver) (bool, error) {
    22  			rows, err := getRunRowElements(wd)
    23  			if err != nil {
    24  				return false, err
    25  			}
    26  			return len(rows) > 1, nil
    27  		}
    28  		err := wd.WaitWithTimeout(runsLoadedCondition, LongTimeout)
    29  		assert.Nil(t, err)
    30  	})
    31  }
    32  
    33  func getRunRowElements(wd selenium.WebDriver) ([]selenium.WebElement, error) {
    34  	e, err := wd.FindElement(selenium.ByCSSSelector, "wpt-runs")
    35  	if err != nil {
    36  		return nil, err
    37  	}
    38  	return FindShadowElements(wd, e, "tr")
    39  }