gpt4 book ai didi

javascript - VBA IE 参与 'list' 并选择 'onchange' 'option values'

转载 作者:行者123 更新时间:2023-11-30 11:17:17 26 4
gpt4 key购买 nike

我目前正在研究涉及 VBA 和 IE 的自动化流程。随着我的代码正在执行的多项操作,一切都与时俱进。问题是当我接近一个有 2 个下拉列表的部分时,在第一个下拉列表中做出某些选择后出现第二个下拉列表。

我为这部分开发的部分代码[比较粗糙]如下:

Dim dropY As Object
Set dropY = IE.Document.getelementbyid("selectedListType")
dropY.Focus
Application.SendKeys "{DOWN 4}"

Do While IE.Busy
Application.Wait DateAdd("s", 2, Now)
Loop
Do Until .ReadyState = 4
DoEvents
Loop
'second list
Dim dropZ As Object
Set dropZ = IE.Document.getelementbyid("dataSet")
dropZ.Focus 'I can see that the window is being selected
Application.SendKeys ("{DOWN 1}") 'at this point the code fails
Application.SendKeys ("{ENTER}")

问题是,如何处理两个下拉列表中的选择以避免将来出现错误?以下是网站来源。

'first list
Select List Type
<select name="selectedListType" id="selectedListType" class="regular" onchange="onSubmitOrgConfig(2)">
<option value="Choice1"
>
Country Lists
</option>
<option value="Choice2"
>
Region Lists
</option>
<option value="Choice3"
>
Area Lists
</option>
<option value="Choice4"
>
Aggregated Lists
</option>
<option value="OTHER"
selected>
Other Lists
</option>
<option value="Other1"
>
Secure List
</option>
</select>
&nbsp;&nbsp;&nbsp;&nbsp;
Select List
<select name="dataSet" id="dataSet" class="regular" onchange="onSubmitDataSet(6, this.value);">
<option value="">--Select--</option>
<option value="LIST_1"
>
BLACKLIST_LIST
</option>
<option value="LIST_2"
>
BLUE_LIST
</option>
<option value="LIST_3"
selected>
RED_LIST
</option>
<option value="LIST_4"
>
YELL_LIST
</option>
<option value="LIST_5"
>
PURP_LIST
</option>
<option value="LIST_6"
>
BL_LIST
</option>
<option value="LIST_7"
>
ORA_LIST
</option>
<option value="LIST_8"
>
NOCOL_LIST
</option>
<option value="LIST_999"
>
LIST_999
</option>
</select>

最佳答案

tl;dr;

如果没有可玩的网页,就很难就事件的顺序以及以下所有内容是否有效提出建议,但希望它会有所帮助。

例如,我不知道您是否必须点击第一个列表,选择一个项目,然后自动触发附加的 javascript,或者您是否需要实际触发事件。然后,如果您必须第二次重复此操作。因此,在下面,我向您展示了我将如何尝试分别实现这些操作中的每一个,以便您可以尝试它们以查看哪些有效。我们可以根据反馈进行改进。


selectedListType 下拉列表:

您可以尝试点击第一个列表

.document.querySelector("#selectedListType").Click

您可以从第一个列表中选择项目

.document.querySelector("#selectedListType [value='Choice1']")

根据需要更改Choice1

所以标记为selected可以是

.document.querySelector("#selectedListType [value='Choice1']").Selected = True

数据集下拉列表:

您可以尝试点击第二个列表

.document.querySelector("#dataSet").Click

您可以从第二个列表中选择项目

.document.querySelector("#dataSet option[value='LIST_1']")

适本地更改LIST_1

所以标记为selected可以是

.document.querySelector("#dataSet option[value='LIST_1']").Selected = True

onchange 事件:

两个列表都有一个 onchange 事件:

你可以触发这些

 .document.querySelector("#selectedListType").FireEvent "onchange"
.document.querySelector("#dataSet").FireEvent "onchange"

关于javascript - VBA IE 参与 'list' 并选择 'onchange' 'option values',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51078177/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com