Невозможно выбрать календарные даты из выпадающего списка «Выбор даты» (ГГГГ / ММ / ДД) в Selenium VBA - PullRequest
0 голосов
/ 25 апреля 2020

Пытаясь автоматизировать веб-сайт, где я испытываю трудности при выборе даты из выпадающего списка. Это веб-сайт: https://www.icegate.gov.in/DocEnquiry/iecEnq/IECSB

У меня есть файл Excel с кодом IEC, номером PAN, датами начала и окончания. Первые 2 части я могу закончить sh вверх, но при выборе дат я нахожу трудности.

IEC нет.

  1. 0907012248
  2. 0906018463

Номер PAN.

  1. AAFCA2804G
  2. AAGCA0259A

Начальные даты - любой 30-дневный период (скажем, с 2020/01/01 по 2020/01/31)

Sub MEISsite()

Dim bot As WebDriver
Dim count As Long

Set bot = New WebDriver
bot.Start "Chrome"
count = 1

While (Len(Range("A" & count)) > 0)

bot.Get "https://www.icegate.gov.in/DocEnquiry/iecEnq/IECSB"

bot.FindElementByXPath("//input[@id='iecNo']").SendKeys Range("A" & count)
bot.FindElementByXPath("//input[@id='panNo']").SendKeys Range("B" & count)


'Below part is where the Drop down list Date selector is causing me problem.

bot.FindElementByXPath("//tr[4]/td[2]/img[1]").Click
bot.FindElementByXPath("//select[@name='calendar-month']").SendKeys Range("C" & count)
bot.FindElementByXPath("//select[@name='calendar-year']").SendKeys Range("D" & count)

bot.FindElementByXPath("//tr[5]/td[2]/img[1]").Click
bot.FindElementByXPath("//select[@name='calendar-month']").SendKeys Range("C" & count)
bot.FindElementByXPath("//select[@name='calendar-year']").SendKeys Range("D" & count)


'bot.Wait 10000
bot.FindElementByXPath("//span[@id='iecSBEnq']").Click

Range("I" & count) = bot.FindElementByXPath("//table[@id='resultTable']").Text

'bot.Wait 1000
End If
End If
count = count + 1
Wend
bot.Quit
End Sub

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

Пожалуйста, помогите мне.

1 Ответ

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

Может быть лучший подход, но это то, что я пытался, и это нормально для меня

Sub MEISsite()
Dim e, bot As WebDriver, ele As SelectElement, eledpTD As Object, r As Long, i As Long

Set bot = New WebDriver
r = 1

With bot
    .Start "Chrome"

    While (Len(Range("A" & r)) > 0)
        .Get "https://www.icegate.gov.in/DocEnquiry/iecEnq/IECSB"

        .FindElementByXPath("//input[@id='iecNo']").SendKeys Range("A" & r)
        .FindElementByXPath("//input[@id='panNo']").SendKeys Range("B" & r)

        For i = 1 To 2
            With .FindElementByXPath("//*[@id='pagetable']/tbody/tr[" & i + 3 & "]/td[2]")
                .ScrollIntoView: .Click
            End With
            Set ele = .FindElementByName("calendar-month").AsSelect
            ele.SelectByIndex Month(Cells(r, i + 2)) - 1
            Set ele = .FindElementByName("calendar-year").AsSelect
            ele.SelectByValue CStr(Year(Cells(r, i + 2)))
            Set eledpTD = .FindElementsByClass("dpTD")
            For Each e In eledpTD
                If Val(e.Text) = Val(Day(Cells(r, i + 2))) Then
                    e.Click: Exit For
                End If
            Next e
        Next i

        r = r + 1
    Wend

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