selenium - 在 Golang 的 *agouti.webdriver 中检索 session ID

标签 selenium go saucelabs ginkgo agouti

我想在使用 Agouti 创建新的 WebDriver 时使用 session 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() 检索 session ID,但返回类型是总线接口(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]

关于selenium - 在 Golang 的 *agouti.webdriver 中检索 session ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45421439/

相关文章:

python - Selenium 在元素中查找元素

go - 为什么在 Go 的 if 语句中创建结构是非法的?

密码为 "@"的 HTTP 基本认证 URL

robotframework - 如何在酱料实验室中为机器人框架配置测试用例名称

selenium - Protractor 未知错误: Connection reset

html - 如何使用 Selenium 中的变量检查属性值

Python/selenium - 定位元素 'By' - 用变量指定定位器策略?

GO:作为 Fprintf 参数传递的表单值类型不正确

mongodb - 如何使用golang将数组对象数据转换为字符串格式数据?

linux - Saucelabs 连接 Linux - 无法识别 '-u' 命令