我需要从网站中提取报告并将其导出到excel。
我能够登录并单击我需要单击的两个div中的第一个,但是当我命令vba单击第二个div时,什么也没有发生。
我是新手,对javascript一无所知,所以如果我对我所说的话有误,请纠正我。
这是有问题的网站:
http://gaps.myeasy.com.br/gaps2010/Spek/Principal.aspx
我需要单击“Gestão”,然后单击“ Controle de Atividades”。
到目前为止,我的代码:
Sub LoginGaps()
Dim IE As Object
'START INTERNET EXPLORER
Set IE = CreateObject("InternetExplorer.application")
IE.Visible = True
IE.Navigate ("http://gaps.myeasy.com.br/gaps2010/Spek/Principal.aspx")
While IE.Busy Or IE.readyState <> 4: DoEvents: Wend
'LOGIN TO WEBSITE
'frmLogin.Show
'CLICK ON "GESTÃO"
IE.document.getElementById("uwlBar_Group_2_text_top").Click
'CLICK ON "CONTROLE DE ATIVIDADES"
IE.document.getElementById("uwlBar_2_Item_1").Click
End Sub
不幸的是,我无法在论坛中传递用户数据,因为它不是我的,因此我在执行此操作的行前添加了'。
即使我不了解javascript,也可以了解单击“ Controle de atividades”时激活了哪个脚本,但是我需要知道“ sReturn”的值才能使用“ execScript”进行调用,并且由于我的经验不足,无法找到sReturn的价值。
这是脚本:
function aftermenu(sRetorno)
{
var aRetorno=sRetorno.split("|");
var iModulo=aRetorno[0];
var sId=aRetorno[1];
var sPagina=aRetorno[2];
var sLogin=aRetorno[3];
var iPermissao=aRetorno[4];
if (iPermissao=="1")
{
if (lstItem!=null)
{
lstItem.style.backgroundColor="#f9f9f9";
lstItem.onmouseover=function(){this.style.background="#d6d3d6"};
lstItem.onmouseout=function(){this.style.background="#f9f9f9"};
//lstItem.setSelected(false);
}
lstItem=null;
if (sId!=""){
lstItem=document.getElementById(sId);
lstItem.style.backgroundColor="#dee6f3";
lstItem.onmouseover=function(){};
lstItem.onmouseout=function(){};
/*
lstItem=iglbar_getItemById(sId).element;/*
lstItem.setSelected(true);*/}
frmPrincipal=document.getElementById("frmPrincipal");
frmPrincipal.location.href=sPagina;
}
else
{
showmessage("Acesso ao módulo/função não permitido para o usuário "+sLogin+".\nConsulte o administrador do sistema.",520,constInfo,constOk,this,false);
}
}
该脚本将sRetorno的值分成5个变量,然后,在“ frmPrincipal”中打开一个链接,该链接是页面上的大方块,该链接是我找到报告的地方。
如果可以帮助我找到sRetorno值的定义方式,我想到了两种可能性。
第一种是使用“ execScript”调用脚本,第二种是采用sPagina的值并直接打开链接以提取报告(如果可能)。
重要的是要说该站点只能在Internet Explorer上运行,对我来说,这使调试代码和了解sReturn的值分配更加困难。
很抱歉在星期日中旬打扰您,但是自从星期四以来我一直在转悠,试图解决这个问题,我只是不动。
十分感谢大家。
最佳答案
如果使用F12打开浏览器的“网络”选项卡,然后单击“ CONTROLE DE ATIVIDADES”(已登录),您应该在POST请求的正文中看到与所单击的内容相关的所有必需值。
事件:
正文(由于我尚未登录,因此外观可能会略有不同):
边注:
您应该期望看到有限的功能/方法,这是由于Web设计器指示浏览器以以下方式运行: