Excel VBA Selenium 单击第二个按钮

Excel VBA Selenium click second button

我正在尝试使用 selenium 在 Excel VBA 中编程以单击按钮,但网络 (http://app.bde.es/rss_www/) 有两个具有相同“类型”和“Class".

<input type="button" class="boton" value="Consultar en PDF" onclick="irAConsulta(document.getElementById('entidad').value, document.getElementById('objetivo').value, document.getElementById('paisRegistro').value, document.getElementById('sector').value, document.getElementById('ejercicio').value, document.getElementById('dimension').value, document.getElementById('pais').value, '0');">

<input type="button" class="boton" value="Consultar en EXCEL" onclick="irAConsultaExcel(document.getElementById('entidad').value, document.getElementById('objetivo').value, document.getElementById('paisRegistro').value, document.getElementById('sector').value, document.getElementById('ejercicio').value, document.getElementById('dimension').value, document.getElementById('pais').value, '0');">

我需要点击第二个下载Excel中的数据。

如果我输入:

OBJ.FindElementByClass("button").Click 

这点击了第一个(PDF),如何点击第二个获取 excel 数据?

您可以使用 XPath 或 CSS 选择器定位该元素。
通过 XPath:

OBJ.FindElementByXPath("//input[@value='Consultar en EXCEL']").Click 

通过 CSS 选择器:

OBJ.findElementByCssSelector("input[value='Consultar en EXCEL']").Click 

FindElementBy* 将始终 return 第一个匹配元素。所以你用的总是return第一个匹配的元素,就是下载PDF格式数据的控件

要识别以 Excel 格式下载数据的元素,您需要识别 uniquely and you can use either of the following :

  • 使用 FindElementByCssonclick 属性:

    OBJ.FindElementByCss("input[onclick^='irAConsultaExcel']").Click
    
  • 使用 FindElementByCssvalue 属性:

    OBJ.FindElementByCss("input[value='Consultar en EXCEL']").Click
    
  • 使用 FindElementByXPathonclick 属性:

    OBJ.FindElementByXPath("//input[starts-with(@onclick, 'irAConsultaExcel')]").Click
    
  • 使用 FindElementByXPathvalue 属性:

    OBJ.FindElementByXPath("//input[@value='Consultar en EXCEL']").Click