Когда объект динамический или неизвестный, как в вашем случае, будет связываться только во время выполнения, что вы и видите. По сути, компилятор не знает, какой тип объекта или тип объекта содержит методы и свойства, поэтому он обходит проверку во время компиляции. Что вы можете сделать, это привести его к соответствующему типу ...
Private browser As Object = Nothing
Private Sub doLogin()
Me.ToolStripStatusLabel1.Text = "Logging in"
If My.Settings.UserBrowser Is BrowserChrome Then
Dim Options = New ChromeOptions
'Set options
Dim driverService = ChromeDriverService.CreateDefaultService()
driverService.HideCommandPromptWindow = True
browser = New ChromeDriver(driverService, Options)
Else
Dim Options = New FirefoxOptions
'Set options
Dim driverService = FirefoxDriverService.CreateDefaultService()
driverService.HideCommandPromptWindow = True
browser = New FirefoxDriver(driverService, Options)
End If
If TypeOf browser Is ChromeDriver Then
CType(browser, ChromeDriver).Url = "https://www.example.com"
CType(browser, ChromeDriver).Navigate()
ElseIf TypeOf browser Is FirefoxDriver Then
CType(browser, FirefoxDriver).Url = "https://www.example.com"
CType(browser, FirefoxDriver).Navigate()
End If
End Sub
Или другая возможность ...
CType(browser, If(TypeOf browser Is ChromeDriver, ChromeDriver, FirefoxDriver)).Url = "https://www.example.com"
CType(browser, If(TypeOf browser Is ChromeDriver, ChromeDriver, FirefoxDriver)).Navigate()