Как использовать новые конечные точки geckodriver?

В новом geckodriver v0.17.0 есть новый способ установки надстроек, как указано здесь:

POST /session/{session id}/window/fullscreen to invoke the window manager-specific full screen operation
POST /session/{session id}/moz/addon/install to install an extension [Gecko only]
POST /session/{session id}/moz/addon/uninstall to uninstall an extension [Gecko only]

Как я могу использовать эти конечные точки для установки моего дополнения к firefox для моих тестов на селен?


person mosaad    schedule 05.07.2017    source источник


Ответы (2)


Вы должны знать ip и порт, с которого запускается geckodriver. И после запуска geckodriver вы можете получить идентификатор сеанса из экземпляра драйвера.

Вы можете получить IP-адрес и порт, как указано здесь

Например: если IP-адрес и порт
localhost:15874

и идентификатор сеанса 1e53412a-05eb-40a9-8a7b-bb8dd6fd75ab

Затем вы можете опубликовать сообщение json на

http://localhost:15874/session/1e53412a-05eb-40a9-8a7b-bb8dd6fd75ab/moz/addon/install

Тело сообщения должно быть

{
    "path":"xxyy.xpi",
    "temporary":true
}
person Madhan    schedule 06.07.2017
comment
как я могу узнать, на каком порту будет работать geckodriver? - person mosaad; 07.07.2017

Если кому-то нужно использовать это из клиента .NET (поскольку он еще не реализован)

Public Class MyFirefoxDriver
Inherits OpenQA.Selenium.Firefox.FirefoxDriver

Public Sub New(fo As OpenQA.Selenium.Firefox.FirefoxOptions)
    MyBase.New(fo)
    MyBase.CommandExecutor.CommandInfoRepository.TryAddCommand("moz-install-web-ext", New CommandInfo(CommandInfo.PostCommand, "/session/{sessionId}/moz/addon/install"))
End Sub


Public Sub InstallWebExtension(path As String)
    Dim params As New Dictionary(Of String, Object)
    params.Add("path", path)
    params.Add("temporary", True)
    MyBase.Execute("moz-install-web-ext", params)
End Sub

End Class
person hex    schedule 05.12.2017