Автоматизация браузера (Chrome) в Excel с использованием селена - PullRequest
0 голосов
/ 16 апреля 2020

Я работаю над автоматизацией веб-сайта, чтобы превзойти копирование-вставку. Веб-сайт здесь является правительственным веб-сайтом, поэтому немного сложен в обращении. У меня проблема с извлечением данных с этого веб-сайта: ------ http://nhb.gov.in/IndexPage.aspx?enc=nRXYbvwNFTF218kodGo9fg==

Несколько кодов проекта для тестирования:

  • 37TTG0000170
  • 28AAP0023256
  • 23MP0006837
  • 23AMP0006839

У меня есть список кодов проектов, которые следует взять из прикрепил файл Excel, вставил его на сайт и нажал кнопку подтверждения. See image 1

Затем на следующей странице тот же код проекта имеет гиперссылку, которая при нажатии приводит нас к нашей странице результатов с информацией о проекте, который необходимо извлечь и вставить в лист Excel рядом с соответствующим кодом проекта, таким как эти таблицы и данные. (Это более поздняя часть, которая может быть изменена).

Следующее препятствие: Чтобы принять следующий проект Код с листа, страница должна быть похожа на первый скриншот, чего можно добиться, нажав "Go Вернуться к списку" . См. Изображение ниже:

Image 2

После нажатия он возвращает на страницу, на которой нам нужно нажать "Go назад к поиску Страница ", которая ведет нас на главную страницу с того места, с которого мы начали, и только после этого мы можем вставить новый код проекта.

См. Страницу с конечным результатом - Final Result Page

Я попробовал на первом шаге: 1) открыть страницу 2) ввести код проекта 3) нажать кнопку Very

с приведенным ниже кодом, но там я получаю сообщение об ошибке, когда chrome открывает ...... ChromeError

Option Explicit

Public Sub NHBsite()

Dim bot As WebDriver, rng As Range, Cell As Range
Dim ws As Worksheet

Const URL As String = "http://nhb.gov.in/IndexPage.aspx?enc=nRXYbvwNFTF218kodGo9fg=="

Set bot = New ChromeDriver
Set ws = ThisWorkbook.Worksheets("Data")
Set rng = ws.Range(ws.Range("A2"), ws.Range("A2").End(xlDown))

'bot.Window.Maximize

For Each Cell In rng
    bot.Get URL
    bot.FindElementById("ctl00_ContentPlaceHolder1_ctl00_txtProjectCode").SendKeys Cell.Value
    bot.FindElementById("ctl00_ContentPlaceHolder1_ctl00_btnSearchProject").Click
    bot.FindElementById("ctl00_ContentPlaceHolder1_ctl00_gvSerachDetails_ctl02_lblProjectCode").Click

    'bot.Wait 1000
    'bot.TakeScreenshot.SaveAs (ThisWorkbook.Path + "/Screenshot_" + Cell.Value + ".jpg")
Next

bot.Quit

End Sub

Пожалуйста, помогите мне в этом. Я сижу Ежедневно, например, 6-7 часов, обучение на веб-сайтах, просмотр видео на YouTube и электронных книг.

1 Ответ

1 голос
/ 16 апреля 2020

Вы хотите l oop коды и каждый новый код возвращаться к стартовой ссылке. (Не проверено)

Option Explicit

Public Sub NHBsite()

    Dim bot As WebDriver, rng As Range
    Dim ws As Worksheet, cell Ad Range

    Const URL As String = "http://nhb.gov.in/IndexPage.aspx?enc=nRXYbvwNFTF218kodGo9fg=="

    Set bot = New ChromeDriver
    Set ws = ThisWorkbook.Worksheets("Data")
    Set rng = ws.Range(ws.Range("A2"), ws.Range("A2").End(xlDown))

    bot.Window.Maximize

    For Each Cell In rng
        bot.get URL
        bot.FindElementById("ctl00_ContentPlaceHolder1_ctl00_txtProjectCode").SendKeys Cell.Value
        bot.FindElementById("ctl00_ContentPlaceHolder1_ctl00_btnSearchProject").Click
        bot.Wait 1000
        bot.TakeScreenshot.SaveAs (ThisWorkbook.Path + "/Screenshot_" + Cell.Value + ".jpg")
    Next

    bot.Quit

End Sub
...