Доступ к основному тексту веб-страницы с помощью VBA & Selenium - PullRequest
0 голосов
/ 07 ноября 2018

Я пытаюсь преобразовать Excel macro, который в настоящее время использует Internet Explorer, и использовать следующую строку кода для извлечения <body> текста веб-страницы

x = .Document.DocumentElement.InnerText

Используя демонстрацию Selenium, я могу создать jpg страницы с Chrome & IE, но Firefox просто загружает пустую страницу и IE64 & Edge не работает на Windows 10.

Мне не удалось найти правильную команду VBA с Selenium, чтобы скопировать основной текст в переменную «x». Я только хочу это прочитать.

Я пытаюсь сделать это, чтобы сделать мой макрос-браузер независимым.

Макрос предназначен только для моего использования.

Jim

1 Ответ

0 голосов
/ 07 ноября 2018

Вы не делаете браузер независимым. Вы просто расширяете выбор браузера до тех, которые поддерживаются с помощью Selen Basic. Это приносит некоторые свои проблемы, которые вы замечаете.

  1. Папки, содержащие драйверы, должны находиться в пути к среде или в качестве аргумента, передаваемого веб-драйверу selenium.
  2. Вы должны использовать последнюю версию браузера Chrome и драйвер Chrome
  3. Вы не можете использовать последнюю версию браузера и драйвера FireFox. Не поддерживается Я думаю, что вам нужно FF v.46.0.1 .
  4. При использовании IE масштаб должен быть до 100%.
  5. Я предлагаю просмотреть страницы проблем Github для поиска других известных проблем
  6. Эвристически, я слышал какой-то стеб о проблемах с Windows 10 и Selenium Basic - было бы интересно узнать, работает ли кто-нибудь, так как я не на этой версии.

Просмотрите examples.xlsm , предоставленный selenium basic GitHub site , чтобы узнать, какие другие браузеры поддерживаются (например, Opera, PhantomJS, FirefoxLight, CEF).

С Chrome вы можете получить основной текст:

Option Explicit 
Public Sub GetInfo()
    Dim d As WebDriver, s As String
    Set d = New ChromeDriver
    Const URL = "https://www.neutrinoapi.com/api/api-examples/python/"

    With d
        .Start "Chrome"
        .get URL
        s = .FindElementByTag("body").Text
        Debug.Print s
        .Quit
    End With
End Sub

Другая информация: https://stackoverflow.com/a/52294259/6241235

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...