Skip to content

Commit b007209

Browse files
committed
Changed (_WD_SetElementValue): Added "advanced" option
1 parent 4ab08bc commit b007209

File tree

1 file changed

+29
-5
lines changed

1 file changed

+29
-5
lines changed

wd_helper.au3

Lines changed: 29 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,11 @@ Global Enum _
4747
$_WD_OPTION_Visible = 1, _
4848
$_WD_OPTION_Enabled = 2, _
4949
$_WD_OPTION_Element = 4
50+
51+
Global Enum _
52+
$_WD_OPTION_Standard, _
53+
$_WD_OPTION_Advanced
54+
5055
#EndRegion
5156
; #FUNCTION# ====================================================================================================================
5257
; Name ..........: _WD_NewTab
@@ -1578,10 +1583,15 @@ EndFunc
15781583
; #FUNCTION# ====================================================================================================================
15791584
; Name ..........: _WD_SetElementValue
15801585
; Description ...: Set value of designated element
1581-
; Syntax ........: _WD_SetElementValue($sSession, $sElement, $sValue)
1586+
; Syntax ........: _WD_SetElementValue($sSession, $sElement, $sValue[, $iStyle = Default])
15821587
; Parameters ....: $sSession - Session ID from _WD_CreateSession
15831588
; $sElement - Element ID from _WD_FindElement
15841589
; $sValue - New value for element
1590+
; $iStyle - [optional] Update style. Default is $_WD_OPTION_Standard.
1591+
;
1592+
; $_WD_OPTION_Standard (0) = Set value using _WD_ElementAction
1593+
; $_WD_OPTION_Advanced (1) = set value using _WD_ExecuteScript
1594+
;
15851595
; Return values .: Success - Requested data returned by web driver
15861596
; Failure - ""
15871597
; @ERROR - $_WD_ERROR_Success
@@ -1592,17 +1602,31 @@ EndFunc
15921602
; @EXTENDED - WinHTTP status code
15931603
;
15941604
; Author ........: Dan Pollak
1595-
; Modified ......:
1605+
; Modified ......: 03/31/2021
15961606
; Remarks .......:
15971607
; Related .......:
15981608
; Link ..........:
15991609
; Example .......: No
16001610
; ===============================================================================================================================
1601-
Func _WD_SetElementValue($sSession, $sElement, $sValue)
1611+
Func _WD_SetElementValue($sSession, $sElement, $sValue, $iStyle = Default)
16021612
Local Const $sFuncName = "_WD_SetElementValue"
1613+
Local $sResult, $iErr, $sScript, $sJsonElement
16031614

1604-
Local $sResult = _WD_ElementAction($sSession, $sElement, 'value', $sValue)
1605-
Local $iErr = @error
1615+
If $iStyle = Default Then $iStyle = $_WD_OPTION_Standard
1616+
If $iStyle < $_WD_OPTION_Standard Or $iStyle > $_WD_OPTION_Advanced Then $iMethod = $_WD_OPTION_Standard
1617+
1618+
Switch $iStyle
1619+
Case $_WD_OPTION_Standard
1620+
$sResult = _WD_ElementAction($sSession, $sElement, 'value', $sValue)
1621+
$iErr = @error
1622+
1623+
Case $_WD_OPTION_Advanced
1624+
$sScript = "Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype, 'value').set.call(arguments[0], arguments[1]);arguments[0].dispatchEvent(new Event('input', { bubbles: true }));"
1625+
$sJsonElement = '{"' & $_WD_ELEMENT_ID & '":"' & $sElement & '"}'
1626+
$sResult = _WD_ExecuteScript($sSession, $sScript, $sJsonElement & ',"' & $sValue & '"')
1627+
$iErr = @error
1628+
1629+
EndSwitch
16061630

16071631
Return SetError(__WD_Error($sFuncName, $iErr), 0, $sResult)
16081632
EndFunc

0 commit comments

Comments
 (0)