我想在使用Agouti创建新的WebDriver并将其传递给SauceLabs进行状态更新时使用 session ID。
使用的命令:
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()
检索 session ID,但是返回类型是Bus Interface,结果是带有*http.client
变量的Session。是否还有其他替代方法?,只需检索 session ID。
最佳答案
page.Session()。Bus返回* apiSession类型以提取 session 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]