最近,我一直在编写代码来填充用JavaScript / CSS制作的网页,但是,当尝试填充任何下拉菜单/弹出菜单值时,尽管文本是写在字段上的,元素未被选中,使其无效。
我通过查找字段elementID
来填充字段,然后将值发送到
Dim ie As Object
Set ie = CreateObject("InternetExplorer.Application")
ie.document.getElementByID(CRMPE(i)).Value = CampoPE(i)
Dim id As String
id="_FOpt1:_FOr1:0:_FOSrCRM_CUSTOM_CARD_EMRQUOTE_C:0:_FOTsr1:0:ExtGen_pt11:ExtGen_cr1:0:ExtGen_ptCr11:ExtGen_attr_Tier_c_EMRQuote_c1::pop"
其中CRMPE
包含字段ID,CampoPE
包含要粘贴在网页上的值。
对于下拉菜单,我尝试过:
ie.document.getElementByID(id).Focus
ie.document.getElementByID(id).selectedIndex = 1
ie.document.getElementByID(id).FireEvent
ie.document.getElementByID(id)(1).Click
ie.document.getElementByID(id).FireEvent ("onchange")
ie.document.getElementsByTagName(id).querySelector("Li[_adfiv=3]").Click
这些都不起作用。
我认为主要问题是页面的结构
以下是CSS代码:
<ul class="x1qu" id="_FOpt1:_FOr1:0:_FOSrCRM_CUSTOM_CARD_EMRQUOTE_C:0:_FOTsr1:0:ExtGen_pt11:ExtGen_cr1:0:ExtGen_ptCr11:ExtGen_attr_Tier_c_EMRQuote_c1::pop"><li id="_FOpt1:_FOr1:0:_FOSrCRM_CUSTOM_CARD_EMRQUOTE_C:0:_FOTsr1:0:ExtGen_pt11:ExtGen_cr1:0:ExtGen_ptCr11:ExtGen_attr_Tier_c_EMRQuote_c1::sp" class="x1qz" style="width: 264px;"></li><li class="x1r3" _adfiv=""></li><li class="x1r3" _adfiv="NO_VALUE">No Value</li><li class="x1r3" _adfiv="0">0</li><li class="x1r3 p_AFSelected" _adfiv="1">1</li><li class="x1r3" _adfiv="2">2</li><li class="x1r3" _adfiv="3">3</li><li class="x1r3" _adfiv="4">4</li><li class="x1r3" _adfiv="5">5</li></ul>
<li id="_FOpt1:_FOr1:0:_FOSrCRM_CUSTOM_CARD_EMRQUOTE_C:0:_FOTsr1:0:ExtGen_pt11:ExtGen_cr1:0:ExtGen_ptCr11:ExtGen_attr_Tier_c_EMRQuote_c1::sp" class="x1qz" style="width: 264px;"></li>
<li class="x1r3" _adfiv=""></li>
<li class="x1r3" _adfiv="NO_VALUE">No Value</li>
<li class="x1r3" _adfiv="0">0</li>
<li class="x1r3 p_AFSelected" _adfiv="1">1</li>
<li class="x1r3" _adfiv="2">2</li>
<li class="x1r3" _adfiv="3">3</li>
如图所示,所选元素已添加到其类名p_AFSelected
,
我用.classname = "x1r3 p_AFSelected"
尝试了所有上述代码,但没有成功
所以主要问题是,如何通过单击或更改其classname
以添加p_AFSelected
来选择其中一个值?
欢迎使用其他可行的解决方案。
答案 0 :(得分:0)
您可以尝试将attribute = value css选择器设置为目标元素
ie.document.querySelector("[_adfiv='2']").click
而且(不确定您的html是否正确添加到问题中)
ie.document.querySelectorAll("[_adfiv='2']").item(1).click