为If语句引用'onclick'事件-IE Automation

时间:2019-09-23 18:44:11

标签: excel vba internet-explorer automation onclick

抱歉,这有点令人困惑。但是,我在这里有点不尽如人意。我有一个自动化IE的宏。有一次,我的宏导航到一个用于下载报告的URL。该URL几乎总是相同的。但是,链接中的一位数字有时可以更改。链接中更改的数字只能是12。用于获取报告的按钮的onclick事件指示将生成哪个报告。结果,我需要我的宏有一个IF语句来读取onclick,如果onclick1,那么它将导航到带有{ {1}},或者如果它是1,它将导航到带有2的链接。我在下面提供了2的详细信息:

onclick

我的代码在下面,如何调用/引用onclick ID?

Link with 'ReporttypeID=1'

<input name="btnContinue" class="primary" id="btnContinue" onclick="javascript:pop('Splash.aspx?SplashID=3&amp;../Reports/ReportView.aspx&amp;ReporttypeID=1&amp;lang=EN&amp;ruletypeid=5&amp;ruleid=0'); return false;" type="submit" value="Continue">```

Link with 'ReporttypeID=2'

<input name="btnContinue" class="primary" id="btnContinue" onclick="javascript:pop('Splash.aspx?SplashID=3&amp;../Reports/ReportView.aspx&amp;ReporttypeID=2&amp;lang=EN&amp;ruletypeid=5&amp;ruleid=0'); return false;" type="submit" value="Continue">```

1 个答案:

答案 0 :(得分:2)

这些答案基于始终存在一个或另一个。

提取onclick属性并测试其是否包含字符串"ReporttypeID=1"

If Instr(ie.document.getElementById("btnContinue").getAttribute("onclick"),"ReporttypeID=1")> 0 Then
    'report 1
Else
  'report 2
End If

另一种方法是使用带有包含运算符的css attribute = value selector来检查nodeList的长度

If ie.document.querySelectorAll("[onclick*='ReporttypeID=1']").Length > 0 Then
    'report 1
Else
  'report 2
End If