VBA Selenium Date Picker

Viewed 49

I want to change the date on this site to some future date (next summer), but I don't know how to. The webpage code I am working with looks like this,

<div class="c24-travel-input-wrapper"><div class="c24-travel-tablet-input-overlay c24-travel-filled">Sa, 10.09.2022</div>
<input type="text" name="departureDate" data-package-date="10.09.2022" data-lastminute-date="10.09.2022" data-earlybird-date="31.12.2022" data-hotelonly-date="10.09.2022" data-allinclusive-date="10.09.2022" data-train-date="12.09.2022" data-user-package-date="" data-user-lastminute-date="" data-user-earlybird-date="" data-user-hotelonly-date="" data-user-allinclusive-date="" data-user-train-date="" data-valid-query-date="" data-param-map="departureDate" placeholder="tt.mm.jjjj" data-validate-ele="1" id="c24-travel-departure-date-element" data-default-searchrequest-value="16.09.2022" data-saved-date="" tabindex="" data-defaultvalue="" class="c24-travel-validate-ele" value=""><div class="c24-travel-departure-date-element-description c24-travel-date-element-description c24-travel-hidden" id="c24-travel-departure-date-element-description">01.01.</div><span class="c24-travel-icon-date c24-travel-input-icon c24-travel-date-btn"></span></div>

The date at the end of the first line is what I need to change. (c24-travel-input-wrapper)

I cannot edit the input field directly - you need to use the date picker popup, so I figure I should be using JavaScript, something like this...

Dim ch As Selenium.ChromeDriver
Dim setDate As Selenium.WebElement
Dim attrScript As String

attrScript = "arguments[0].setAttribute(" & myTravelDateS & ")" 'myTravelDateS is set earlier - example is So, 01.01.2023
ch.ExecuteScript attrScript, setDate

But I don't have enough knowledge to make this work. The web address is https://urlaub.check24.de/

enter image description here

enter image description here

1 Answers

I found the solution.

Set setDate = ch.FindElementByCss("div.c24-travel-tablet-input-overlay.c24-travel-filled")
attrScript = "arguments[0].innerText = '" & myTravelDateS & "'"
ch.ExecuteScript attrScript, setDate

innerText was what I needed to know.

Thanks a lot to this great community, so much knowledge and information tucked away in these pages.

Related