Я пытаюсь настроить таргетинг и нажать кнопку на сайте, который требует от меня открыть раскрывающееся меню, выбрать опцию в списке и нажать «Применить».Я получил это большую часть пути там, но я не могу заставить его нажать на кнопку.Вот ссылка на соответствующий HTML-код, с которым я работаю https://pastebin.com/n5hJY3ua.. И полный путь Xpath кнопки: / html / body / div [5] / div [3] / div / button [1]
Я пробовал различные способы нацеливания на кнопку, такие как:
.FindElementByXPath("//div[@button='Apply']").Click
.FindElementByClass("applyBtn btn btn-small btn-success").Click
.FindElementByXPath(".//div[@button, 'Apply']").Click
Option Explicit
Public Sub ClickDate()
Dim t As Date
Dim ele As Object
Dim driver As New ChromeDriver
Dim post As WebElement
Dim i As Integer
Dim mysheet As Worksheet
Const MAX_WAIT_SEC As Long = 10
Const INURL = "https://ss3.shipstation.com/#/dashboard"
Const URL = "https://ss3.shipstation.com/"
Set mysheet = Sheets("Sheet1")
With driver '<==log into shipstation
.Start "Chrome"
.get URL
t = Timer
Do
On Error Resume Next
Set ele = .FindElementById("username")
On Error GoTo 0
If Timer - t > MAX_WAIT_SEC Then Exit Do
Loop While ele Is Nothing
If ele Is Nothing Then Exit Sub
ele.SendKeys "Username"
.FindElementById("password").SendKeys "Password"
.FindElementById("btn-login").Click
End With
With driver '<==select todays date
.get INURL
Dim drf As Object
t = Timer
Do
Set drf = driver.FindElementsByCss(".col-sm-4 h2")
If Timer - t > MAX_WAIT_SEC Then Exit Do
Loop While drf.Count = 0
If drf.Count > 0 Then
.FindElementByClass("display-date").Click
With .FindElementByXPath("//html/body/div/*/ul/li[1]")
.Click
End With
.FindElementByXPath("//div[contains(@button, 'applyBtn btn btn-small btn-success')]").Click
End If
i = 2
Dim item As Object, nodeList As Object, r As Long
t = Timer
Do
Set nodeList = driver.FindElementsByCss(".col-sm-4 h2")
If Timer - t > MAX_WAIT_SEC Then Exit Do
Loop While nodeList.Count = 0
If nodeList.Count > 0 Then
For Each item In nodeList
r = r + 1
ActiveSheet.Cells(2, r) = item.Text
Next
End If
End With
End Sub
Мне нужно нажать кнопку Применить, чтобы сайт выполнил поиск по дате сегодня, а затем получить данныеи отобразить его на листе Excel.Все работает, кроме возможности нажать на кнопку.Мне возвращается
Ошибка времени выполнения '7': NoSuchElementError.