我想使用硒VBA从Yahoo Finance KOSPI COmposite Index下载一些数据。
单击日期选择器箭头以打开一个微型窗口以选择结束日期为今天时,我遇到了困难。我试图通过Chrome中的Selenium IDE记录marco,但是当我单击“时间段”的箭头以使日期选择器可见时,IDE不会记录该步骤。
下面是我在VBA中的代码。
MANAGED
我试图使用ByXPath来获取svg类,但是失败了。
谢谢。
答案 0 :(得分:1)
如果需要,我将使用以下内容提交OATH同意并将日期选择器滚动到视口中
Option Explicit
Public Sub DatePicking()
Dim d As WebDriver
Set d = New ChromeDriver
Const URL = "https://finance.yahoo.com/quote/%5EKS11/history?period1=1484018309&period2=1515554309&interval=1d&filter=history&frequency=1d/"
With d
.get URL
If .Title = "Yahoo is now part of Oath" Then
.FindElementByCss("form").submit
End If
With .FindElementByCss("[data-test='date-picker-full-range']")
.ScrollIntoView
.Click
End With
With .FindElementByCss("[name=startDate]")
.Clear
.SendKeys "05/10/2017"
End With
With .FindElementByCss("[name=endDate]")
.Clear
.SendKeys "05/10/2017"
End With
Stop '<==Delete me later
.Quit
End With
End Sub
答案 1 :(得分:0)
检查一下。它应该达到目的。我用xpath
解决了这个问题。
Sub CustomizeDate()
Const Url$ = "https://finance.yahoo.com/quote/%5EKS11/history?period1=1484018309&period2=1515554309&interval=1d&filter=history&frequency=1d"
Dim driver As New ChromeDriver
With driver
.get Url
.FindElementByXPath("//input[@data-test='date-picker-full-range']", timeout:=5000).Click
.FindElementByXPath("//input[@name='startDate']").Clear.SendKeys ("01/05/2017")
.FindElementByXPath("//input[@name='endDate']").Clear.SendKeys ("01/08/2017")
.FindElementByXPath("//button/span[.='Done']", timeout:=5000).Click
.FindElementByXPath("//button/span[.='Apply']", timeout:=5000).Click
End With
End Sub
不要对任何项目使用硬编码的延迟。请改用Explicit Wait
。该脚本将最多等待5000
,这意味着该项目可用需要5秒钟。