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 }