#include-once #AutoIt3Wrapper_Run_AU3Check=Y #AutoIt3Wrapper_Au3Check_Parameters=-q -d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6 -w 7 # It can be handy # https://support.smartbear.com/crossbrowsertesting/docs/automated-testing/automation-capabilities.html # https://github.com/SeleniumHQ/selenium/wiki/DesiredCapabilities # https://www.autoitscript.com/forum/topic/206576-wd_capabilitiesau3-support-topic/ Func _WD_Capabilities_Build_JSON($s_Browser_type, $s_WD_Capabilities_Arguments, $s_WD_Capabilities_Preferences) #forceref $s_Browser_type ;~ _WD_Capabilities_Build_JSON('chrome', $s_WD_Capabilities_Arguments, $s_WD_Capabilities_Preferences) Local $s_Desired_Capabilities = _ '{"capabilities":' & @CR & _ ' {' & @CR & _ ' "alwaysMatch": ' & @CR & _ ' {' & @CR & _ ' "goog:chromeOptions":' & @CR & _ ' {' & @CR & _ ' "w3c": true' & @CR & _ ' ,"args":' & @CR & _ ' [' & $s_WD_Capabilities_Arguments & ']' & @CR & _ ' ,"prefs":' & @CR & _ ' {' & $s_WD_Capabilities_Preferences & '}' & @CR & _ ' }' & @CR & _ ' } ' & @CR & _ ' }' & @CR & _ '}' Return $s_Desired_Capabilities EndFunc ;==>_WD_Capabilities_Build_JSON Func __WD_Capabilities_Builder_Wrapper(ByRef $s_WD_Capabilities_Static, $s_WD_Capabilities_Parameter, $s_Prefix) If $s_WD_Capabilities_Parameter = Null Then ; CleanUp $s_WD_Capabilities_Static = '' ElseIf $s_WD_Capabilities_Parameter = Default Then ; Return stored cabapabilites snippet Return $s_WD_Capabilities_Static & @CR & $s_Prefix ElseIf $s_WD_Capabilities_Parameter Then ; add new string to cabapabilites snippet Local $s_colon_detector = (($s_WD_Capabilities_Static) ? (',') : ('')) $s_WD_Capabilities_Static &= @CR & _ $s_Prefix & ' ' & $s_colon_detector & $s_WD_Capabilities_Parameter EndIf EndFunc ;==>__WD_Capabilities_Builder_Wrapper Func _WD_Capabilities_Build_Arguments($s_WD_Capabilities_Parameter_name, $s_WD_Capabilities_Parameter_value = '') Local Static $s_WD_Capabilities_Static = '' If $s_WD_Capabilities_Parameter_name = Null Or $s_WD_Capabilities_Parameter_name = Default Then _ Return __WD_Capabilities_Builder_Wrapper($s_WD_Capabilities_Static, $s_WD_Capabilities_Parameter_name, ' ') Local $s_WD_Capabilities_Parameter = $s_WD_Capabilities_Parameter_name If $s_WD_Capabilities_Parameter_value Then If $s_WD_Capabilities_Parameter_name = 'user-data-dir' Then $s_WD_Capabilities_Parameter_value = StringReplace($s_WD_Capabilities_Parameter_value, '\', '\\') EndIf $s_WD_Capabilities_Parameter &= '=' & $s_WD_Capabilities_Parameter_value EndIf $s_WD_Capabilities_Parameter = '"' & $s_WD_Capabilities_Parameter & '"' Return __WD_Capabilities_Builder_Wrapper($s_WD_Capabilities_Static, $s_WD_Capabilities_Parameter, ' ') EndFunc ;==>_WD_Capabilities_Build_Arguments Func _WD_Capabilities_Build_Preferences($s_WD_Capabilities_Parameter_name, $s_WD_Capabilities_Parameter_value = '') Local Static $s_WD_Capabilities_Static = '' If $s_WD_Capabilities_Parameter_name = Null Or $s_WD_Capabilities_Parameter_name = Default Then _ Return __WD_Capabilities_Builder_Wrapper($s_WD_Capabilities_Static, $s_WD_Capabilities_Parameter_name, ' ') Local $s_WD_Capabilities_Parameter = '"' & $s_WD_Capabilities_Parameter_name & '"' If $s_WD_Capabilities_Parameter_value Then If $s_WD_Capabilities_Parameter_name = 'download.default_directory' Then $s_WD_Capabilities_Parameter_value = StringReplace($s_WD_Capabilities_Parameter_value, '\', '\\') EndIf $s_WD_Capabilities_Parameter &= ': ' & '"' & $s_WD_Capabilities_Parameter_value & '"' EndIf Return __WD_Capabilities_Builder_Wrapper($s_WD_Capabilities_Static, $s_WD_Capabilities_Parameter, ' ') EndFunc ;==>__WD_Capabilities_Build_Preferences