ich das Selen Paket Go mit https://godoc.org/github.com/tebeka/seleniumGolang Selen-Paket - eine Verbindung mit Selen-Server und ohne Kopf Chrom
Und ich bin mit Maden Chrom + Selen-Server innerhalb eines Docker-Container auf localhost:4444
Der Server scheint in Ordnung zu sein, da ich die Web-Konsole über http://localhost:4444/wd/hub/static/resource/hub.html
zugreifen Aber ich versuche, das „Hallo Welt“ -Beispiel zu bekommen mit dem vorhandenen docker Behälter zu arbeiten.
Dies ist das Beispiel aus der GoDocs Seite für die Selen-Treiber:
// Run some code on play.golang.org and display the result
package main
import (
"fmt"
"time"
"github.com/tebeka/selenium"
)
var code = `
package main
import "fmt"
func main() {
fmt.Println("Hello WebDriver!\n")
}
`
// Errors are ignored for brevity.
func main() {
// Connect to the selenium server
caps := selenium.Capabilities{"browserName": "firefox"}
wd, err := selenium.NewRemote(caps, "http://127.0.0.1:4444")
if err != nil {
fmt.Println(err)
}
defer wd.Quit()
// Get simple playground interface
wd.Get("http://play.golang.org/?simple=1")
// Enter code in textarea
elem, _ := wd.FindElement(selenium.ByCSSSelector, "#code")
elem.Clear()
elem.SendKeys(code)
// Click the run button
btn, _ := wd.FindElement(selenium.ByCSSSelector, "#run")
btn.Click()
// Get the result
div, _ := wd.FindElement(selenium.ByCSSSelector, "#output")
output := ""
// Wait for run to finish
for {
output, _ = div.Text()
if output != "Waiting for remote server..." {
break
}
time.Sleep(time.Millisecond * 100)
}
fmt.Printf("Got: %s\n", output)
}
ich die "browserName"
-"chrome"
Wechsel versucht, aber ich bekomme diese Fehlermeldung:
panic: got content type "text/html", expected "application/json"
goroutine 1 [running]:
main.main()
/home/user01/Code/golang_src/golang_exercises/33_selenium/selenium.go:28 +0x457
exit status 2
ich nichts finden kann in der GoDoc Selen Dokumentation zum Chrome Browser und wie man sich über den Selen-Server damit verbindet.
Ich würde mich über Hinweise freuen, was hier schief gehen könnte.
Update:
Es scheint, dass das Entfernen der URL-Adresse und verlassen es leer die Verbindungsprobleme behoben ist:
wd, err := selenium.NewRemote(caps, "")
Das heißt, ich habe immer noch Probleme mit dem Beispiel. Hauptsächlich scheint es, als ob es sich mit der Go Playground Website verbindet, bekommt die richtigen Elemente, aber wenn es darum geht, die Eingabe elem.SendKeys(code)
zu senden, sendet es es nicht richtig und das Textfeld ist leer. Was zu schlechten Ausgang aus dem Spielplatz:
Got: can't load package: package main:
tmp/sandbox573608783/main.go:1:1: expected 'package', found 'EOF'
Program exited.