@@ -819,7 +819,10 @@ Func DemoSelectOptions()
819
819
If @error Then Return SetError (@error , @extended , ' ' )
820
820
821
821
; change the attributes of the frame to improve the visibility of the <select> element, on which the options will be indicated
822
- Local $sJavaScript = " var element = arguments[0]; element.setAttribute('height', '500'); element.setAttribute('padding', '0');"
822
+ Local $sJavaScript = _
823
+ " var element = arguments[0];" & _
824
+ " element.setAttribute('height', '500');" & _
825
+ " element.setAttribute('padding', '0');"
823
826
_WD_ExecuteScript($sSession , $sJavaScript , __WD_JsonElement($sFrame ), Default , Default )
824
827
If @error Then Return SetError (@error , @extended , ' ' )
825
828
@@ -833,7 +836,8 @@ Func DemoSelectOptions()
833
836
834
837
; change <select> element size, to see all <option> at once
835
838
$sJavaScript = _
836
- " var element = arguments[0];element.setAttribute('size', '10')"
839
+ " var element = arguments[0];" & _
840
+ " element.setAttribute('size', '10')"
837
841
_WD_ExecuteScript($sSession , $sJavaScript , __WD_JsonElement($sSelectElement ), Default , Default )
838
842
839
843
; select ALL options
@@ -847,17 +851,41 @@ Func DemoSelectOptions()
847
851
MsgBox ($MB_OK + $MB_TOPMOST + $MB_ICONINFORMATION , " Information" , " After DESELECTALL" )
848
852
849
853
; select desired options
850
- Local $aOptions [] = [' Cat' , ' Hamster ' , ' Parrot ' , ' Albatross ' ]
851
- _WD_ElementSelectAction($sSession , $sSelectElement , ' MULTISELECT' , $aOptions )
854
+ Local $aOptionsToSelect [] = [' Cat' , ' HAMSTER ' , ' parrot ' , ' albatroSS ' ]
855
+ _WD_ElementSelectAction($sSession , $sSelectElement , ' MULTISELECT' , $aOptionsToSelect )
852
856
If @error Then Return SetError (@error , @extended , ' ' )
853
- MsgBox ($MB_OK + $MB_TOPMOST + $MB_ICONINFORMATION , " Information" , " After MULTISELECT" )
857
+ MsgBox ($MB_OK + $MB_TOPMOST + $MB_ICONINFORMATION , " Information" , " After MULTISELECT: Cat / HAMSTER / parrot / albatroSS " )
854
858
855
- ; retrieves all <option> elements as 2D array
856
- Local $aSelectedOptions = _WD_ElementSelectAction($sSession , $sSelectElement , ' OPTIONS ' )
859
+ ; retrieves selected <option> elements as 2D array
860
+ Local $aSelectedOptions = _WD_ElementSelectAction($sSession , $sSelectElement , ' selectedOptions ' )
857
861
If @error Then Return SetError (@error , @extended , ' ' )
858
862
859
863
_ArrayDisplay($aSelectedOptions , ' $aSelectedOptions' )
860
864
865
+ _WD_ElementSelectAction($sSession , $sSelectElement , ' SINGLESELECT' , ' PARROT' )
866
+ If @error Then Return SetError (@error , @extended , ' ' )
867
+ MsgBox ($MB_OK + $MB_TOPMOST + $MB_ICONINFORMATION , " Information" , " After SINGLESELECT: PARROT (Parrot)" )
868
+
869
+ ; retrieves all <option> elements as 2D array
870
+ Local $aAllOptions = _WD_ElementSelectAction($sSession , $sSelectElement , ' OPTIONS' )
871
+ If @error Then Return SetError (@error , @extended , ' ' )
872
+
873
+ _ArrayDisplay($aAllOptions , ' $aAllOptions' )
874
+
875
+ ; deselect ALL options
876
+ _WD_ElementSelectAction($sSession , $sSelectElement , ' DESELECTALL' )
877
+ If @error Then Return SetError (@error , @extended , ' ' )
878
+
879
+ ; disable 'multiple' attribute for <select> element
880
+ $sJavaScript = _
881
+ " var element = arguments[0];" & _
882
+ " element.multiple = false"
883
+ _WD_ExecuteScript($sSession , $sJavaScript , __WD_JsonElement($sSelectElement ), Default , Default )
884
+
885
+ ; this will set @error as <select> element does not have a 'multiple' attribute
886
+ _WD_ElementSelectAction($sSession , $sSelectElement , ' MULTISELECT' , $aOptionsToSelect )
887
+ MsgBox ($MB_OK + $MB_TOPMOST + $MB_ICONINFORMATION , " Information" , " After MULTISELECT on <select> element with disabled 'multiple' attribute" & @CRLF & " @error=" & @error )
888
+
861
889
; now will test enabled/disabled OPTGROUP
862
890
_WD_Navigate($sSession , ' https://developer.mozilla.org/en-US/docs/Web/HTML/Element/optgroup#examples' )
863
891
If @error Then Return SetError (@error , @extended , ' ' )
@@ -869,25 +897,30 @@ Func DemoSelectOptions()
869
897
If @error Then Return SetError (@error , @extended , ' ' )
870
898
871
899
; change the attributes of the frame to improve the visibility of the <select> element, on which the options will be indicated
872
- Local $sJavaScript2 = " var element = arguments[0]; element.setAttribute('height', '500'); element.setAttribute('padding', '0');"
900
+ Local $sJavaScript2 = _
901
+ " var element = arguments[0];" & _
902
+ " element.setAttribute('height', '500');" & _
903
+ " element.setAttribute('padding', '0');"
873
904
_WD_ExecuteScript($sSession , $sJavaScript2 , __WD_JsonElement($sFrame2 ), Default , Default )
874
905
If @error Then Return SetError (@error , @extended , ' ' )
875
906
876
907
; entering to the frame
877
908
_WD_FrameEnter($sSession , $sFrame2 )
878
909
If @error Then Return SetError (@error , @extended , ' ' )
879
910
880
- ; get <select> element by it's name
881
- Local $sSelectElement2 = _WD_FindElement($sSession , $_WD_LOCATOR_ByCSSSelector ," body > select" )
911
+ ; get <select> element
912
+ Local $sSelectElement2 = _WD_FindElement($sSession , $_WD_LOCATOR_ByCSSSelector , " body > select" )
882
913
If @error Then Return SetError (@error , @extended , ' ' )
883
914
884
915
; change <select> element size, to see all <option> at once
885
916
$sJavaScript2 = _
886
- " var element = arguments[0];element.setAttribute('size', '9')"
917
+ " var element = arguments[0];" & _
918
+ " element.setAttribute('size', '9')"
887
919
_WD_ExecuteScript($sSession , $sJavaScript2 , __WD_JsonElement($sSelectElement2 ), Default , Default )
888
920
889
921
$sJavaScript2 = _
890
- " var element = arguments[0];element.setAttribute('multiple','')"
922
+ " var element = arguments[0];" & _
923
+ " element.setAttribute('multiple','')"
891
924
_WD_ExecuteScript($sSession , $sJavaScript2 , __WD_JsonElement($sSelectElement2 ), Default , Default )
892
925
893
926
; select ALL options
@@ -900,18 +933,32 @@ Func DemoSelectOptions()
900
933
If @error Then Return SetError (@error , @extended , ' ' )
901
934
MsgBox ($MB_OK + $MB_TOPMOST + $MB_ICONINFORMATION , " Information" , " After DESELECTALL" )
902
935
903
- ; select desired options
904
- Local $aOptions2 [] = [' Option 1.1' , ' Option 2.1' , ' Option 3.1' ]
936
+ ; select desired <option> elements one after other each separately
937
+ Local $aOptions2 [] = [' Option 1.1' ]
938
+ _WD_ElementSelectAction($sSession , $sSelectElement2 , ' MULTISELECT' , $aOptions2 )
939
+ If @error Then Return SetError (@error , @extended , ' ' )
940
+
941
+ $aOptions2 [0 ] = ' Option 2.1'
905
942
_WD_ElementSelectAction($sSession , $sSelectElement2 , ' MULTISELECT' , $aOptions2 )
906
943
If @error Then Return SetError (@error , @extended , ' ' )
907
- MsgBox ($MB_OK + $MB_TOPMOST + $MB_ICONINFORMATION , " Information" , " After MULTISELECT" )
944
+
945
+ $aOptions2 [0 ] = ' Option 3.1' ; this will set @error as 'Option 3.1' is disabled
946
+ _WD_ElementSelectAction($sSession , $sSelectElement2 , ' MULTISELECT' , $aOptions2 )
947
+ MsgBox ($MB_OK + $MB_TOPMOST + $MB_ICONINFORMATION , " Information" , " After MULTISELECT: 1.1 / 2.1 / 3.1" & @CRLF & " <option> elements one after other each separately" & @CRLF & " @error=" & @error )
908
948
909
949
; retrieves all <option> elements as 2D array
910
- Local $aSelectedOptions2 = _WD_ElementSelectAction($sSession , $sSelectElement2 , ' OPTIONS' )
950
+ Local $aAllOptions2 = _WD_ElementSelectAction($sSession , $sSelectElement2 , ' OPTIONS' )
911
951
If @error Then Return SetError (@error , @extended , ' ' )
912
952
913
- _ArrayDisplay($aSelectedOptions2 , ' $aSelectedOptions2' )
953
+ _ArrayDisplay($aAllOptions2 , ' $aAllOptions2' )
954
+
955
+ _WD_ElementSelectAction($sSession , $sSelectElement2 , ' SINGLESELECT' , ' Option 2.1' )
956
+ If @error Then Return SetError (@error , @extended , ' ' )
957
+ MsgBox ($MB_OK + $MB_TOPMOST + $MB_ICONINFORMATION , " Information" , " After SINGLESELECT: 2.1" )
914
958
959
+ ; this will set @error as 'Option 3.2' is disabled
960
+ _WD_ElementSelectAction($sSession , $sSelectElement2 , ' SINGLESELECT' , ' Option 3.2' )
961
+ MsgBox ($MB_OK + $MB_TOPMOST + $MB_ICONINFORMATION , " Information" , " After SINGLESELECT: 3.2 - disabled <option> element" & @CRLF & " @error=" & @error )
915
962
916
963
EndFunc ; ==>DemoSelectOptions
917
964
0 commit comments