Получить идентификатор сеанса в *agouti.webdriver для Golang
Я хочу использовать идентификатор сеанса при создании нового WebDriver с Agouti, чтобы передать его в 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()
но возвращаемый тип - это интерфейс шины, а результат - сессия с *http.client
переменная.
Есть ли какая-либо другая альтернатива этому?, чтобы просто получить идентификатор сессии.
2 ответа
Page.Session().Bus возвращает тип *apiSession для извлечения идентификатора сеанса. Использование Indirect может помочь нам вернуть значение, на которое указывает *apiSession в этом случае page.Session(). Шина, от которой мы можем извлечь session 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])
спасибо Гэвину!
Удачи!