如何通过(ALT + S)VBA Web Scraper中的键盘快捷键

时间:2018-10-05 07:42:44

标签: vba web-scraping

我想知道我的问题的任何解决方案... 我想使用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">

1 个答案:

答案 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