在不关闭 Selenium Chrome VB.Net 窗口的情况下转到同一窗口中的其他网页

Going to a different web page within the same window without closing the VB.Net Selenium Chrome window

提问人:Cihangir Can 提问时间:4/20/2021 最后编辑:MartinCihangir Can 更新时间:4/20/2021 访问量:385

问:

尊敬的论坛成员。

使用下面的代码,我可以使用 selenium 打开 chrome 网络浏览器并转到我想要的互联网地址。我只有一个问题。当我单击 button1 时,chrome 窗口打开并转到 http://google.com/。当我在驱动程序打开时单击 button2 时,它会运行一个单独的 chrome 驱动程序并转到雅虎。这就是我想要的 打开第一个 chrome 窗口并进入 google 后,当我单击BUTTON2“WITHOUT OPENING NEW CHROME”时,我希望它从现有的 CHROME 窗口转到 yahoo.com.我找不到代码。我想在不关闭当前 chrome 引擎的情况下转到另一个链接。我在哪里犯了错误?我请求你的帮助。方面。

Imports OpenQA.Selenium
Imports OpenQA.Selenium.Chrome
Imports OpenQA.Selenium.Support.UI
Imports System.Text

Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        Dim driver As IWebDriver
        driver = New ChromeDriver()
        driver.Navigate().GoToUrl("http://google.com/")

    End Sub

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        Dim driver As IWebDriver
        driver = New ChromeDriver()
        driver.Navigate().GoToUrl("http://yahoo.com/")
    End Sub
End Class
vb.net selenium-chromedriver chrome-web-driver

评论

0赞 Martin 4/20/2021
为什么不创建一个成员变量来保存并在按钮之间共享它呢?如果没有测试,我想这将很容易解决问题IWebDriver

答:

0赞 Martin 4/20/2021 #1

您可能应该使用一个共享实例,该实例将重用您在按下第一个按钮时创建的现有实例。driver

以下未经测试的代码显示了其工作原理:

Public Class Form1
    Dim driver As IWebDriver

    Private Sub DoNavigate(address As String)
        If (driver Is Nothing) Then
            driver = New ChromeDriver()
        End If
        driver.Navigate().GoToUrl(address)
    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        DoNavigate("http://google.com/")
    End Sub

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        DoNavigate("http://yahoo.com/")
    End Sub
End Class

现在,这两个按钮都调用以引起 URL 更改。DoNavigate

功能:DoNavigate

  1. 检查是否已创建。driver
  2. 如果尚未创建,则创建。driver
  3. 导航到指定的。address