为方便测试,想做一个运行web应用后自动打开浏览器的功能,应该如何实现
更多评论
windows 下利用 `cmd /C start htttp://www.baidu.com`
linux 下利用 `xdg-open http://www.baidu.com`
mac 下利用`start http://www.baidu.com`
start, xdg-open 分别是windows和mac, linux打开系统默认程序的工具,所以你要使用谷歌打开就必须要把谷歌浏览器设置为默认,linux下不要使用root权限使用xdg-open,windows下失败可以尝试在管理员权限下的cmd执行你的程序
程序我就偷懒不写了哈,调用子程序就行了。go在windows下好像不需要 cmd /C,好像会自动使用shell
#1
ChromeDriver
PhantomJS
Selenium
可以使用这个第三方库
github.com/sclevine/agouti
```go
package main
import (
"fmt"
"time"
"github.com/sclevine/agouti"
)
func main() {
// cd := agouti.ChromeDriver()
// cd := agouti.PhantomJS()
// cd := agouti.Selenium()
cd := agouti.Selendroid("./selenium-server-standalone-3.5.2.jar")
err := cd.Start()
if err != nil {
fmt.Println("Start webDriver:", err)
return
}
defer cd.Stop()
pg, err := cd.NewPage(agouti.Browser("chrome"))
if err != nil {
fmt.Println("NewPage:", err)
return
}
err = pg.SetPageLoad(10000)
if err != nil {
fmt.Println("SetPageLoad:", err)
return
}
err = pg.SetScriptTimeout(1000)
if err != nil {
fmt.Println("SetScriptTimeout:", err)
return
}
err = pg.Navigate("https://www.baidu.com/")
if err != nil {
fmt.Println("Navigate:", err)
return
}
for {
title, err := pg.Title()
if err != nil {
fmt.Println("Title:", err)
return
}
fmt.Println(title)
sc := pg.FindByLink("新闻")
// str, err := sc.Text()
// if err != nil {
// fmt.Println("str:", err)
// return
// }
// fmt.Println(str)
err = sc.Click()
if err != nil {
fmt.Println("click:", err)
return
}
title, err = pg.Title()
if err != nil {
fmt.Println("Title2:", err)
return
}
fmt.Println(title)
//sleep
time.Sleep(2 * time.Second)
err = pg.Back()
if err != nil {
fmt.Println("Back:", err)
return
}
//sleep
time.Sleep(2 * time.Second)
}
}
```
#3