我正在使用 Selenium basic 撰寫 Excel 宏。我有一個文本框,可以從作業表單元格值中輸入日期。問題是當我嘗試輸入日期值時,游標的位置從中間開始,即月份值,我需要游標從文本框的最左邊開始。
我嘗試不使用“driver.FindElementById().Click”,但它根本沒有輸入任何值。但是使用“driver.FindElementById().Click”會發生這種情況,請參閱下圖。 在此處輸入影像描述
萬一圖片不能上傳... _ _ _ _/| / _ 輸出錯誤 20/22 輸出應該是 2022/01/18 (YYYY/MM/DD)
這是我的代碼...
Sub MAIN_RTN()
Dim WK_GETDATE As Date
Dim WEBDRIVER As New Selenium.ChromeDriver
Dim IDX0 As Integer
Dim WK_DATE As String
WEBDRIVER.AddArgument "disable-gpu"
WEBDRIVER.AddArgument "start-maximized"
With WEBDRIVER
.Start
.Get ThisWorkbook.Worksheets(1).Range("B5").Value
.FindElementByName("txtID").SendKeys ThisWorkbook.Worksheets(1).Range("F2").Value
.FindElementByName("txtPass").SendKeys ThisWorkbook.Worksheets(1).Range("F3").Value
End With
WK_DATE = ThisWorkbook.Worksheets(1).Range("F4").Value
WK_DATE = Replace(WK_DATE, "/", "")
WK_GETDATE = Mid(WK_DATE, 1, 4) & "/" & Mid(WK_DATE, 5, 2) & "/" & Mid(WK_DATE, 7, 2)
For IDX0 = 11 To (ThisWorkbook.Worksheets(1).Range("B10") 10)
WEBDRIVER.FindElementById("cphContents_ddlMc").SendKeys ThisWorkbook.Worksheets(1).Range("B" & IDX0).Value
WEBDRIVER.FindElementById("cphContents_txtDayF").Clear
Call WaitFor(1)
Call DATE_SET(WEBDRIVER, WK_GETDATE, "cphContents_txtDayF")
WEBDRIVER.FindElementById("cphContents_txtDayT").Clear
Call WaitFor(1)
Call DATE_SET(WEBDRIVER, WK_GETDATE 1, "cphContents_txtDayT")
Call WaitFor(1)
WEBDRIVER.FindElementById("cphContents_cmdExcel_Day").Click
Call WaitFor(5)
Next IDX0
WEBDRIVER.Quit
Exit Function
End Sub
Sub DATE_SET(ByRef WEBDRIVER As Selenium.ChromeDriver, ARG_DATE As Date, WK_ELEMENT As String)
Dim IDX As Integer
Dim WKSTR1 As String
WKSTR1 = Format(ARG_DATE, "YYYYMMDD")
Call WaitFor(2)
WEBDRIVER.FindElementById(WK_ELEMENT).Click
Call WaitFor(2)
For IDX = 1 To Len(WKSTR1)
WEBDRIVER.FindElementById(WK_ELEMENT).SendKeys Mid(WKSTR1, IDX, 1)
Next IDX
End Sub
uj5u.com熱心網友回復:
您是否嘗試過使用 WEBDRIVER.ExecuteScript?
datescript = "arguments[0].setAttribute('value', 'yourdate')"
WK_ELEMENT = WEBDRIVER.FindElementById("cphContents_txtDayF")
WEBDRIVER.ExecuteScript datescript, WK_ELEMENT
uj5u.com熱心網友回復:
我找到了解決方法。我強迫游標移動到最左邊的文本框。我為此安裝了 SeleniumWrapper。 在 VBA-Selenium 中按 Enter 和向下鍵
WEBDRIVER.FindElementById("cphContents_txtDayF").Click
For x = 1 To 5
WEBDRIVER.SendKeys keys.ArrowLeft
Next x
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/415480.html
標籤:
上一篇:如何使用DocumentFormat.OpenXML或ClosedXMLC#從Excel中獲取合并的單元格
下一篇:功能區強制重繪
