github.com/web-platform-tests/wpt.fyi@v0.0.0-20240530210107-70cf978996f1/webdriver/file_results_test.go (about) 1 // +build large 2 3 package webdriver 4 5 import ( 6 "testing" 7 "time" 8 9 "github.com/tebeka/selenium" 10 ) 11 12 func TestFileResults(t *testing.T) { 13 runWebdriverTest(t, func(t *testing.T, app AppServer, wd selenium.WebDriver) { 14 // Navigate to an individual test file result. 15 url := "/results/infrastructure/assumptions/ahem.html" 16 if err := wd.Get(app.GetWebappURL(url)); err != nil { 17 panic(err) 18 } 19 20 // Wait for the results view to load. 21 runsLoadedCondition := func(wd selenium.WebDriver) (bool, error) { 22 testRuns, err := getFileResultRows(wd) 23 if err != nil { 24 return false, err 25 } 26 return len(testRuns) > 0, nil 27 } 28 wd.WaitWithTimeout(runsLoadedCondition, time.Second*10) 29 }) 30 } 31 32 func getFileResultRows(wd selenium.WebDriver) ([]selenium.WebElement, error) { 33 e, err := wd.FindElement(selenium.ByCSSSelector, "wpt-results") 34 if err != nil { 35 return nil, err 36 } 37 return FindShadowElements(wd, e, "test-file-results", "tbody tr") 38 }