-
Notifications
You must be signed in to change notification settings - Fork 71
Description
Selenium server: 3.6.0
Go error:
Failed to open session: unknown error - 33: Unable to create new service: GeckoDriverService
Build info: version: '3.6.0', revision: '6fbf3ec767', time: '2017-09-27T16:15:40.131Z'
System info: host: 'anboo', ip: '127.0.1.1', os.name: 'Linux', os.arch: 'amd64', os.version: '4.10.0-35-generic', java.version: '1.8.0_144'
Driver info: driver.version: unknown
Selenium logs:
09:53:06.803 INFO - Binding default provider to: org.openqa.selenium.chrome.ChromeDriverService
09:53:06.804 INFO - Found handler: org.openqa.selenium.remote.server.commandhandler.BeginSession@18a73dae
09:53:06.805 INFO - /session: Executing POST on /session (handler: BeginSession)
09:53:06.808 INFO - Capabilities are: Capabilities {browserName=firefox}
09:53:06.809 INFO - Capabilities {browserName=firefox} matched class org.openqa.selenium.remote.server.ServicedSession$Factory (provider: org.openqa.selenium.firefox.GeckoDriverService)
09:53:06.810 INFO - Capabilities {browserName=firefox} matched class org.openqa.selenium.remote.server.ServicedSession$Factory (provider: org.openqa.selenium.chrome.ChromeDriverService)
Code:
`package main
import (
"fmt"
//"sourcegraph.com/sourcegraph/go-selenium"
"github.com/tebeka/selenium"
)
func main() {
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
}
}`