函数参考


_IEFormElementOptionSelect

设置指定表单元素的值.

#include <IE.au3>
_IEFormElementOptionSelect ( ByRef $o_object, $s_string [, $f_select = 1 [, $s_mode = "byValue" [, $f_fireEvent = 1]]] )

参数

$o_object "Select Option"类型的表单元素对象
$s_string 用于匹配元素的值 - 基于设定的模式$s_mode
$f_select [可选参数]: 指定元素是选中或未选中
-1 = 返回选中状态
0 = 不选中元素
1 = (默认)选中元素
$s_mode [可选参数]: 定义搜索模式
byValue = (默认)希望选中的选项的值
byText = 希望选中的选项的文本
byIndex = 希望选中的选项的0基索引
$f_fireEvent [可选参数]: 指定在改变值后是否激活OnChange和OnClick事件
0 = 设置值后不激活OnChange或OnClick事件
1 = (默认)设置值后激活OnChange和OnClick事件

返回值

成功: 如果$f_select = -1, 返回当前的被选中状态, 或返回1
失败: 返回 0并设置@ERROR
@Error: 0 ($_IEStatus_Success) = 无错误
3 ($_IEStatus_InvalidDataType) = 无效数据类型
4 ($_IEStatus_InvalidObjectType) = 无效对象类型
5 ($_IEStatus_InvalidValue) = 无效值
7 ($_IEStatus_NoMatch) = 无匹配
@Extended: 包含无效参数数量

注意/说明

仅当表单元素与onChange事件关联时, $f_fireEvent参数才有效.

相关

_IEFormElementCheckBoxSelect, _IEFormElementRadioSelect, _IEFormElementGetValue, _IEFormElementSetValue

示例/演示


; *******************************************************
; 示例 1 - 打开含表单示例的浏览器, 获取到表单的引用, 获取
;               到选择元素的引用, 根据 byValue, byText 和 byIndex 循环十次进行选择
;               注意: 您可能需要往下滚动页面来查看发生的变化
; *******************************************************

#include <IE.au3>

Local $oIE = _IE_Example("form")
Local $oForm = _IEFormGetObjByName($oIE, "ExampleForm")
Local $oSelect = _IEFormElementGetObjByName($oForm, "selectExample")
For $i = 1 To 10
    _IEFormElementOptionSelect($oSelect, "Freepage", 1, "byText")
    Sleep(1000)
    _IEFormElementOptionSelect($oSelect, "midipage.html", 1, "byValue")
    Sleep(1000)
    _IEFormElementOptionSelect($oSelect, 0, 1, "byIndex")
    Sleep(1000)
Next

; *******************************************************
; 示例 2 - 打开含表单示例的浏览器, 获取到表单的引用, 获取
;               到选择的多个元素的引用, 循环 5 次进行选择然后取消选择
;               选项 byValue, byText 和 byIndex.
;               注意: 您可能需要往下滚动页面来查看发生的变化
; *******************************************************

#include <IE.au3>

$oIE = _IE_Example("form")
$oForm = _IEFormGetObjByName($oIE, "ExampleForm")
$oSelect = _IEFormElementGetObjByName($oForm, "multipleSelectExample")
For $i = 1 To 5
    _IEFormElementOptionSelect($oSelect, "Carlos", 1, "byText")
    Sleep(1000)
    _IEFormElementOptionSelect($oSelect, "Name2", 1, "byValue")
    Sleep(1000)
    _IEFormElementOptionSelect($oSelect, 5, 1, "byIndex")
    Sleep(1000)
    _IEFormElementOptionSelect($oSelect, "Carlos", 0, "byText")
    Sleep(1000)
    _IEFormElementOptionSelect($oSelect, "Name2", 0, "byValue")
    Sleep(1000)
    _IEFormElementOptionSelect($oSelect, 5, 0, "byIndex")
    Sleep(1000)
Next

; *******************************************************
; 示例 3 - 打开含表单示例的浏览器, 获取到表单的引用, 获取
;               到选择的元素的引用, 检查是否选择了 "Freepage" 选项并
;               报告结果.  加上 index 0 和
;               'midipage.html' 的选项值重复操作
;               注意: 您可能需要往下滚动页面来查看发生的变化
; *******************************************************
;
#include <IE.au3>
$oIE = _IE_Example("form")
$oForm = _IEFormGetObjByName($oIE, "ExampleForm")
$oSelect = _IEFormElementGetObjByName($oForm, "selectExample")
If _IEFormElementOptionSelect($oSelect, "Freepage", -1, "byText") Then
    MsgBox(4096, "Option Selected", "Option Freepage is selected")
Else
    MsgBox(4096, "Option Selected", "Option Freepage is Not selected")
EndIf
If _IEFormElementOptionSelect($oSelect, 0, -1, "byIndex") Then
    MsgBox(4096, "Option Selected", "The First (index 0) option is selected")
Else
    MsgBox(4096, "Option Selected", "The First (index 0) option is Not selected")
EndIf
If _IEFormElementOptionSelect($oSelect, "midipage.html", -1, "byValue") Then
    MsgBox(4096, "Option Selected", "The option with value 'midipage.html' is selected")
Else
    MsgBox(4096, "Option Selected", "The option with value 'midipage.html' is NOT selected")
EndIf