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  }