Невозможно использовать драйвер 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...)
Я не понимаю, почему я не могу использовать селен в агути и почему идентификатор элемента пуст. Я надеюсь, что я объяснил свою проблему. Спасибо