在* agouti.webdriver中为Golang检索会话ID
问题描述:
我想在使用Agouti创建新的WebDriver时使用会话ID将它传递给SauceLabs以进行状态更新。在* agouti.webdriver中为Golang检索会话ID
使用的命令:
url := fmt.Sprintf("http://%s:%[email protected]/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。
答
page.Session()。Bus返回一个类型* apiSession来提取会话ID。使用间接可以帮助我们返回* 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]
你是说你不知道如何解析Output来获得期望的输出吗? – JeffC
是的,我无法解析输出或任何其他替代方法来检索会话ID。 – Anvesh
只需将'sessionId'转换为一个字符串,按空格拆分,然后取第一部分。 – JeffC