使用Selenium Driver加载页面,解除/处置它并使浏览器保持活动状态

时间:2017-07-05 22:19:46

标签: vb.net selenium firefox selenium-webdriver selenium-firefoxdriver

我正在使用Selenium Webdriver从应用程序加载特定功能,这是一个富文本编辑器(实际上是CKEditor的自定义版本),下面的代码非常适用于... 除了.Close(),.Quit().Dispose()方法也会消灭Firefox窗口......

有没有办法解雇Selenium Webdriver并让Firefox独立运行?

非常感谢

Private Sub LoadResource()
    Dim FFD As New OpenQA.Selenium.Firefox.FirefoxDriver()

    'Set timeout of 60 seconds for steps to complete successfully 
    Dim WDW As New OpenQA.Selenium.Support.UI.WebDriverWait(FFD, TimeSpan.FromSeconds(60))

    'navigate to login page
    FFD.Navigate.GoToUrl("https://www.myapplication.com/login")

    'Wait until application loads main page (this means login was successful)
    WDW.Until(Function() FFD.Url = "https://www.myapplication.com/")

    'Load built-in rich text editor Rich text
    FFD.Navigate.GoToUrl("https://www.myapplication.com/editor?document=1080199")

    'Wait for successful loading of the editor page
    WDW.Until(Function() FFD.Url = "https://www.myapplication.com/editor?document=1080199")

     'That's all. 
     'here I'd like to release Firefox to keep running and get rid  of WebDriver's objects and resources, if possible.

End Sub

1 个答案:

答案 0 :(得分:0)

这是基于Kirhgoph的评论,似乎运作良好:

Private Sub LoadResource()
    Dim FFD As New OpenQA.Selenium.Firefox.FirefoxDriver()
    Dim GDP As Process = Process.GetProcessesByName("geckodriver").Last
    Dim WDW As New OpenQA.Selenium.Support.UI.WebDriverWait(FFD, TimeSpan.FromSeconds(60))
    FFD.Navigate.GoToUrl("https://www.myapplication.com/login")
    WDW.Until(Function() FFD.Url = "https://www.myapplication.com/")
    FFD.Navigate.GoToUrl("https://my.application.com/editor?document=1080199")
    WDW.Until(Function() FFD.Url = "https://www.myapplication.com/editor?document=1080199")
    GDP.CloseMainWindow()
    GDP.WaitForExit()
    FFD.Quit()
End Sub