在 golang 的 *agouti.webdriver 中检索会话 ID



我想使用会话 ID 同时使用刺鼠创建新的 WebDriver,以将其传递给 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。

页面。会话((。总线返回类型 *apiSession 以提取会话 ID。 使用间接可以帮助我们返回 *apiSession 在本例页面中指向的值。会话((。从那里我们可以提取会话 ID。

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]

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

祝你好运!

最新更新