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

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

尊敬的论坛会员。

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

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

您可能应该使用 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

按钮现在都调用 DoNavigate 以引起 URL 更改。

DoNavigate函数:

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