微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决在不关闭 VB.Net Selenium Chrome 窗口的情况下转到同一窗口中的不同网页

尊敬的论坛成员。

使用下面的代码,我可以使用 selenium 打开 chrome 网络浏览器并转到我想要的互联网地址。我只有一个问题。当我点击 button1 时,chrome 窗口打开并转到 http://google.com/。当我在驱动程序打开时单击 button2 时,它会运行一个单独的 Chrome 驱动程序并转到 yahoo。这就是我想要的打开第一个 chrome 窗口并输入 google 后,当我单击 BUTTON2“不打开新的 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

解决方法

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。