我想在使用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`)
我尝试从page.Session()
检索会话ID,但返回类型是总线接口,结果是带有*http.client
变量的会话。
还有其他替代方法吗?只需检索会话ID。
答案 0 :(得分:0)
fmt.Println(fmt.Sprintf("%s", sessionId)[:32])
感谢Gavin!
答案 1 :(得分:0)
page.Session()。总线返回类型* apiSession以提取会话ID。使用Indirect可以帮助我们返回* apiSession在这种情况下指向的值page.Session()。从那里我们可以提取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]