Невозможно использовать драйвер Selenium с пакетом Golang Agouti

Я использую пакет Agouti в Golang.Я запускаю образ Selenium Docker и создаю новый веб-драйвер с помощью следующей команды:

          capabilities := agouti.NewCapabilities().Browser("chrome").With("javascriptEnabled")
    command := []string{"java", "-jar", "selenium-server.jar", "-port", "4444"}
    driver = agouti.NewWebDriver("http://127.0.0.1:4444/wd/hub", command, agouti.Desired(capabilities))

Я создаю новую страницу и пытаюсь установить значение элемента на этой странице. Я нахожу элемент с помощью xpath, используя следующую команду:

      var selection = page.FindByXPath(xpath)

Затем попробуйте отправить ключ с помощью метода SendKeys() Agouti, но он не устанавливает значение для элемента. Я попытался отправить вызов API в селен, используя протокол JSON Wire для селена. В этом случае мне нужен идентификатор элемента для отправки запроса. Я пытаюсь получить идентификатор элемента с помощью следующего кода:

      elems, _ := selection.Elements()
id := elems[0].ID

Но когда я печатаю идентификатор, я вижу, что он пуст. Так что мой запрос не отправлен. Ошибка, которую я получаю, выглядит следующим образом:

       request unsuccessful: Unable to execute request for an existing session: POST /session/bba01dd19db3a063304a40b59b4cefb7/element//value

Основная причина ошибки в том, что идентификатор элемента пуст.

Кстати, когда я использую драйвер Chrome, он работает правильно

          args = append(args, "disable-blink-features=AutomationControlled")
    chromeOpts := agouti.ChromeOptions("args", args)
    options = append(options, chromeOpts)
    driver = agouti.ChromeDriver(options...) 

Я не понимаю, почему я не могу использовать селен в агути и почему идентификатор элемента пуст. Я надеюсь, что я объяснил свою проблему. Спасибо

0 ответов

Другие вопросы по тегам