==============================================
go-selenium - Selenium WebDriver client for Go
go-selenium is a Selenium WebDriver client for Go.
Note: the public API is experimental and subject to change until further notice.
Usage
Documentation: go-selenium on Sourcegraph.
Example: see example_test.go:
package selenium_test
import (
"fmt"
"sourcegraph.com/sourcegraph/go-selenium"
)
func ExampleFindElement() {
var webDriver selenium.WebDriver
var err error
caps := selenium.Capabilities(map[string]interface{}{"browserName": "firefox"})
if webDriver, err = selenium.NewRemote(caps, "http://localhost:4444/wd/hub"); err != nil {
fmt.Printf("Failed to open session: %s\n", err)
return
}
defer webDriver.Quit()
err = webDriver.Get("https://sourcegraph.com/sourcegraph/go-selenium")
if err != nil {
fmt.Printf("Failed to load page: %s\n", err)
return
}
if title, err := webDriver.Title(); err == nil {
fmt.Printf("Page title: %s\n", title)
} else {
fmt.Printf("Failed to get page title: %s", err)
return
}
var elem selenium.WebElement
elem, err = webDriver.FindElement(selenium.ByCSSSelector, ".repo .name")
if err != nil {
fmt.Printf("Failed to find element: %s\n", err)
return
}
if text, err := elem.Text(); err == nil {
fmt.Printf("Repository: %s\n", text)
} else {
fmt.Printf("Failed to get text of element: %s\n", err)
return
}
}
The WebDriverT
and WebElementT
interfaces make test code cleaner. Each method in
WebDriver
and WebElement
has a corresponding method in the *T
interfaces that omits the error
from the return values and instead calls t.Fatalf
upon encountering an error. For example:
package mytest
import (
"sourcegraph.com/sourcegraph/go-selenium"
"testing"
)
var caps selenium.Capabilities
var executorURL = "http://localhost:4444/wd/hub"
func TestWithT(t *testing.T) {
wd, _ := selenium.NewRemote(caps, executor)
wdt := wd.T(t)
wdt.Get("http://example.com")
elem := wdt.FindElement(selenium.ByCSSSelector, ".foo")
if elem.Text() != "bar" {
t.Fatalf("want elem text %q, got %q", "bar", elem.Text())
}
}
See remote_test.go for more usage examples.
Running tests
Start Selenium WebDriver and run go test
. To see all available options, run go test -test.h
.
TODO
Contributors
License
go-selenium is distributed under the Eclipse Public License.