1

我想在使用 Agouti 创建新的 WebDriver 时使用会话 ID 将其传递给 SauceLabs 以进行状态更新。

使用的命令:

url := fmt.Sprintf("http://%s:%s@ondemand.saucelabs.com/wd/hub", username, accesskey)
page,err :=agouti.NewPage(url, options)
Expect(err).NotTo(HaveOccurred())
page.Navigate(`https://qiita.com/login`)

我试图从中检索会话 ID,page.Session()但返回类型是总线接口,结果是带有*http.client变量的会话。

还有其他替代方法吗?仅检索会话ID。

4

2 回答 2

1

page.Session().Bus 返回一个类型 *apiSession 以提取会话 ID。使用 Indirect 可以帮助我们返回 *apiSession 在这种情况下指向的值 page.Session().Bus 从那里我们可以提取 sessionID。

sessionBus := reflect.ValueOf(page.Session().Bus)
sessionURL := reflect.Indirect(sessionBus)
sessionField := sessionURL.FieldByName(`SessionURL`)
sessionString := sessionField.String()
sessionSplit := strings.SplitN(sessionString, "/", 7)
sessionID := sessionSplit[len(sessionSplit)-1]
于 2017-09-18T13:59:13.913 回答
0

fmt.Println(fmt.Sprintf("%s", sessionId)[:32])感谢加文!

祝你好运!

于 2017-07-31T17:10:18.357 回答