Alex Steinmetz Ответов: 2

Vb net: как получить htmldocument & active htmlelements из веб-браузера по умолчанию


Попытка получить активные элементы из веб - браузера по умолчанию
без использования макета формы + управления веб-браузером.
и опубликуйте имя пользователя + пароль.

Что я уже пробовал:




Dim webBrowser1 As Object = New WebBrowser
webBrowser1 = Process.Start(MemSite(CurrCell), ProcessWindowStyle.Maximized)
Dim HtmlDoc As HtmlDocument = webBrowser1.Document
Dim htmlElem As HtmlElement = HtmlDoc.All.Item(0)
If htmlElem.TagName = "HTML" Then

End If

2 Ответов

Рейтинг:
1

Dave Kreskowiak

Единственный способ сделать это-селен. Тебе сказали это два дня назад, здесь[^].

Опять же, что заставляет вас думать VB.NET не поддерживается селеном?


Alex Steinmetz

Привет Дэйв
Я не знаю, что Скачать с Selenium.
Не могли бы вы быть так добры и помочь.

Dave Kreskowiak

Вам не нужно ничего скачивать на самом деле. В вашем проекте в Visual Studio перейдите в меню Сервис и выберите NuGet Package Manager --> консоль диспетчера пакетов.

В консоли диспетчера пакетов введите "Install-Package Selenium.WebDriver" и нажмите ENTER.

Когда это завершится, введите "Install-Package Selenium.Веб-драйвер.ChromeDriver", затем "Install-Package Selenium.Веб-драйвер.С iedriver".

Есть драйвера Firefox в пакете "Селена.Браузер Firefox.WebDriver", но этот был написан не проектом Selenium.

Alex Steinmetz

Привет, Дэйв.
Спасибо за ваше руководство.
Я установил диски + добавил ссылки на проекты, импортировал пространства имен.

Но у меня нет минимальной идеи, как ее использовать, чтобы решить вышеприведенный вопрос.

Я попробовал Selenium site doc. + Группа пользователей Selenium, но заметьте.

много вопросов с очень немногими ответами.

Готовы ли вы потратить еще немного времени и помочь мне и другим решить эту проблему

выше.

Я буду очень велик полон,

Dave Kreskowiak

У меня не так уж много времени на это. У меня есть своя работа, которую я должен закончить.

Это всего лишь краткий пример создания экземпляра браузера и получения его для перехода по URL-адресу:

Imports OpenQA.Selenium
Imports OpenQA.Selenium.Chrome
Imports OpenQA.Selenium.Support.UI

Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim driver As New ChromeDriver
        driver.Navigate.GoToUrl("http://www.google.com")

        Dim searchBox As IWebElement
        searchBox = GetWebElement(driver, By.Name("q"), 10)
        searchBox.SendKeys("2001 something wonderful")
        searchBox.SendKeys(Keys.Enter)
    End Sub

    Private Overloads Function GetWebElement(ByVal webDriver As IWebDriver, ByVal definition As By, ByVal timeoutSeconds As Integer) As IWebElement
        Dim wait As New WebDriverWait(webDriver, TimeSpan.FromSeconds(timeoutSeconds))

        wait.Until(Function(d)
                       Return d.FindElement(definition).Enabled And d.FindElement(definition).Displayed
                   End Function)

        Return webDriver.FindElement(definition)
    End Function
End Class

Alex Steinmetz

После проверки и тестирования в течение нескольких дней
Я могу очень четко заявить, что единственно возможный и простой ответ
к этой проблеме относится:
Сценарий шоу-браузер по умолчанию (обновление для Win10)[^] по Бигом Йоргена
плюс проект Selenium.
Спасибо Дейву и чуваку за помощь и руководство.

Рейтинг:
1

Alex Steinmetz



Цитата:

Частная Суб NavWeb()
Браузер()
'Тусклый драйвер как новый InternetExplorerDriver
'Дим водителя как новый ChromeDriver
Тусклый драйвер как новый EdgeDriver
- Тусклый водитель, как новый Сафаридривер
водитель.Ориентироваться.GoToUrl(MemSite(CurrCell))
Дим HtmlElem Как IWebElement
HtmlElem = GetWebElement(драйвер, By.TagName("html"), 20)
Если HtmlElem.Тогда TagName = "html"
С помощью MsgBox("Фонд HTML-страницу в" &ампер; "браузера:" &амп; браузер())
Конец, Если
Конец Подводной Лодки

Частная функция перегрузок GetWebElement(с WebDriver бывал как IWebDriver, определение бывал как купить, timeoutSeconds бывал как целое) Как Ивебелемент
Dim wait As New WebDriverWait(webDriver, TimeSpan.FromSeconds(timeoutSeconds))
ждать.Пока(функция(д)
Возврат d.FindElement(определение).Включено и d.FindElement(определение).Отображается
Конечная Функция)
Верните webDriver.FindElement(определение)
Конечная Функция

Функция Браузера()
Const HKEY_CURRENT_USER = &H80000001
Константный strKeyPath = "программное обеспечение\Майкрософт\Windows В\организаций оболочки\\UrlAssociations\НТТР\UserChoice"
Const strValueName = "Progid"
Dim strValue, objRegistry, i
strValue = ничего
Dim blist(6, 1) 'список браузеров:
blist(0, 0) = "Intermet Explorer" : blist(0, 1) = "ie"
blist(1, 0) = "Edge" : blist(1, 1) = "appxq0fevzme2pys62n3e0fbqa7peapykr8v"
blist(2, 0) = "Firefox" : blist(2, 1) = "firefox"
blist(3, 0) = "Chrome" : blist(3, 1) = "chrome"
blist(4, 0) = "Safari" : blist(4, 1) = "safari"
blist(5, 0) = "Avant" : blist(5, 1) = "browserexeurl"
блист(6, 0) = "Опера" : блист(6, 1) = "опера"
objRegistry = GetObject("winmgmts:\\.\root\default:StdRegProv")
objRegistry.GetStringValue(HKEY_CURRENT_USER, strKeyPath, strValueName, strValue)
Если strValue - это ничто, то
Browser = "Intermet Explorer" : Функция Выхода
Еще
Для i = 0 до UBound(blist, 1)
If InStr(1, strValue, blist(i, 1), vbTextCompare) Затем Browser = blist(i, 0) : функция выхода
Следующий
Конец, Если
Browser = "неизвестный веб-браузер" ' (подпись: '" &strvalue & "')"
Конечная Функция