我想知道我的问题的任何解决方案... 我想使用VBA自动填写表单,并且成功将值传递给表单,但是无法单击“保存”按钮。为了保存表单,用户还可以传递快捷键(ALT + S)。
两种解决方案(任何一种解决方案)
1)如何单击保存按钮
或
2)如何将快捷键(ALT + s)传递到ie.document
vba代码:
ie.navigate "abc.com"
Do While ie.Busy: DoEvents: Loop
Do Until ie.readyState = READYSTATE_COMPLETE: DoEvents: Loop
'form Filling
ie.document.getElementsByName("cf_831")(0).selectedIndex = "0"
ie.document.getElementsByName("cf_918")(0).Value = end_date
'here i want to pass (ALT+s) shortcut key in ie.document.
HTML代码参考:(按钮)
<input title="Save [Alt+S]" accesskey="S" class="crmbutton small save"
onclick="this.form.action.value='Save'; if(validateInventory('SalesOrder'))
validateIMEINumber(this.form, 'SalesOrder','E');" type="button" name="button"
value=" Save " style="width:70px">
答案 0 :(得分:1)
您可以尝试使用CSS属性选择器来定位属性及其值。以下选择器组合input[onclick*=Save]
查找属性为input
的{{1}}标签元素,其值包含onclick
。如果没有父框架/ iframe需要协商,它将返回页面上的第一个匹配项。
Save
还有其他可能的属性选择器,例如:
ie.document.querySelector("input[onclick*=Save]").Click
为了降低可靠性,取决于当前的关注点,sendkeys
ie.document.querySelector("[value=Save]").Click
ie.document.querySelector("[title='Save [Alt+S]']").Click