我正在尝试从以下website自动执行数据收集过程。
我在第一个任务中失败了,就是点击按钮并提交邮政编码。
要将searchButton的状态更改为可点击,必须在searchBar中输入邮政编码,该邮政编码会根据输入的邮政编码显示提案。必须选择其中一个提案来改变searchButton的状态,只输入邮政编码是不够的。
到目前为止,我设法点击第二个(2.)和第三个(3.)按钮并在searchBar中输入邮政编码。 Excel打开IE窗口并单击按钮,但由于未事先单击第一个(1.)按钮,因此它甚至不显示2.和3.按钮。如果在执行VBA代码后手动单击第一个按钮,我可以看到选择了2.和3.按钮。
我的问题是:
我设法通过以下方式点击按钮:
.getElementById("ctl00_ContentPlaceHolder1_suche_btn_versorgung2").Click
和
"ctl00_ContentPlaceHolder1_suche_btn_pflegeart1" for "vollstationäre Pflege"
非常感谢您提前
答案 0 :(得分:0)
最后我放弃并使用了selenium basic VBA wrapper,以下是你用VBA做的事情。除Chrome之外,您还可以使用其他支持的浏览器。
<强>代码:强>
Option Explicit
Public Sub test()
Dim d As WebDriver
Set d = New ChromeDriver
Const DATA_OPTION As Long = 1 '<== 1 bist Pflegeeinrichtungen und Betreuungsangebote , oder für Pflegeberatung verwenden 2: .....("button[data-tab=""2""]")
Const LOCATION As String = "10777 Berlin/Schöneberg" '<== Wo möchten Sie suchen?
Const CARE_SETTING As Long = 1 '<== 1 für Ambulanter Pflegedienst. Oder: 2.Stationäre Pflegeeinrichtung ; 3.Angebote zur Unterstützung im Alltag ; 4. Häuslicher Betreuungsdienst
With d
.Start "Chrome"
.Get "https://www.pflegelotse.de/(S(x2hdp4ld1i0ok4y0q2upqasz))/presentation/pl_startseite.aspx"
.FindElementByCss("button[data-tab=""" & DATA_OPTION & """]").Click
Application.Wait Now + TimeSerial(0, 0, 1)
.FindElementByCss("button[data-value=""" & CARE_SETTING & """]").Click
.FindElementById("ctl00_ContentPlaceHolder1_suche_bezirk").SendKeys LOCATION
Application.Wait Now + TimeSerial(0, 0, 1)
Dim keys As New keys
.SendKeys keys.Enter
Application.Wait Now + TimeSerial(0, 0, 1)
.FindElementById("ctl00_ContentPlaceHolder1_suche_btn_suche").Click
Stop
.Quit
End With
End Sub
在行动中: