VBA: нажатие на кнопку веб-скрейпинга не работает - динамически создается хешированная часть URL - PullRequest
0 голосов
/ 06 мая 2020

Я пытаюсь выполнить очистку веб-страниц с помощью VBA и перемещаться по веб-странице, но веб-страница создает хешированную часть URL-адреса за основным URL-адресом, и я не могу «щелкнуть / перейти на» этот URL-адрес, даже если я сосредоточился на, или объекта. URL-адрес меняется каждый раз, когда я выхожу из системы и снова вхожу в систему.

Я пробовал различные объекты html, но безуспешно. Мне нужно попасть в раздел «Входящие / Заказы и релизы». Вручную вам нужно нажать кнопку «Входящие», и появится подменю с кнопкой «Заказы и релизы».

Dim inboxItem
Dim tmp
Dim childNode As Object
For Each inboxItem In objIE.Document.getElementsByClassName("w-tabitem-a")
    Debug.Print inboxItem
    Debug.Print inboxItem.innertext
    If inboxItem.innertext Like "*Orders and Releases*" Then
        Set tmp = inboxItem.getElementsByClassName("w-tabitem-a")
        For Each childNode In tmp
            If childNode.ClassName = "w-tabitem-a" Then
                Debug.Print childNode
                childNode.Click 'This section does not work - no error, debugger is going through this and nothing happen
                Exit For
            End If
        Next childNode
    End If
Next inboxItem

Я думаю, что позади есть javascript, поэтому я вставляю сюда javascripts с веб-страницы после входа в систему и в конце кода html кнопка «Заказы и выпуски» (вверху - Входящие). Заранее благодарим за любую реакцию.

<!DOCTYPE html>

<html dir=LTR>
<head>


<meta http-equiv="X-UA-Compatible" content="IE=Edge"/>


<meta http-equiv="imagetoolbar" content="no"/>



<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">

<div ignore=true class=rr id=DC><script language=JavaScript>
if (!window.ariba) ariba= parent.ariba || {}; ariba.awCurrWindow = parent;
if (window.name == "AWRefreshFrame") {
ariba_IR = true;
RJS = function (inc, sync, isGS, f) { if (inc) parent.ariba.Refresh.RSS(sync, isGS, f.toString()); }
}if (window.ariba_IR && ariba && ariba.Request) {
ariba.Request.requestNotInProgress();
}
</script></div>


<script src="/an/1831280131/ariba/ui/aribaweb/aribaweb_all.js" language=JavaScript></script>
<sCript>var ENABLE_COMMUNITY = true;</sCript>


<script src="/an/1831280131/ariba/ui/aribaweb/Community.js" language=JavaScript></script>
<sCript>
var SCREEN_RESOLUTION_WIDTH = 1280;
var IN_SITU_COLLAPSED_BY_USER = false;
</sCript>




<div class=rr id=BSF>




<script>RJS(true, true, false, function(){ariba.Request.initParams('2','XOXNlDrx','/Supplier.aw/125005058/aw?awh=r&awssk=XOXNlDrx','/Supplier.aw/ad/ping','','/Supplier.aw/125005058/aw',true,null,null,
null,'/Supplier.aw/125005058/aw?awh=b&awssk=XOXNlDrx','/Supplier.aw/125005058/aw?awh=f&awssk=XOXNlDrx',4000,'Please enable window popup for this site to use this function.');});</script>
</div>

<script src="/an/1831280131/ariba/ui/en_US/widg/dateformat.js" language=JavaScript></script>

<script src="/an/1831280131/ariba/ui/widg/widgets_all.js" language=JavaScript></script>



<link href="/an/1831280131/ariba/branding/aw6_widgets.css" type="text/css" rel=stylesheet>

<link media=print href="/an/1831280131/ariba/branding/print.css" type="text/css" rel=stylesheet>

<link href="/an/1831280131/ariba/branding/aw6_ariba.css" type="text/css" rel=stylesheet>

<link href="/an/1831280131/ariba/branding/aw6_i18n.css" type="text/css" rel=stylesheet>

<link href="/an/1831280131/p/Ariba/StyleSheet.css" type="text/css" rel=stylesheet>

<link href="/an/1831280131/p/Ariba/aw6_StyleSheet.css" type="text/css" rel=stylesheet>



<link href="/an/1831280131/p/Ariba/an_themecombo.css" type="text/css" rel=stylesheet>

<title>Ariba Network Supplier</title>




<link href="/an/1831280131/p/Ariba/StyleSheet.css" type="text/css" rel=stylesheet>

<link href="/an/1831280131/p/Ariba/aw6_StyleSheet.css" type="text/css" rel=stylesheet>

<link href="/an/1831280131/p/Ariba/asni18n.css" type="text/css" rel=stylesheet>



<link href="/an/1831280131/p/Ariba/an_themecombo.css" type="text/css" rel=stylesheet>







<link href="/an/1831280131/p/Ariba/components.min.css" type="text/css" rel=stylesheet>




<link href="/an/1831280131/p/Ariba/ies_StyleSheet.css" type="text/css" rel=stylesheet>
<link href="/an/1831280131/p/Ariba/an_iestheme.css" type="text/css" rel=stylesheet>

<link href="/an/1831280131/p/Ariba/ies_asni18n.css" type="text/css" rel=stylesheet>








<script>RJS(true, true, false, function(){ariba.Refresh.loadJSFile("/an/1831280131/p/Ariba/Discovery.js");
});</script>


<link type="image/x-icon" href="/an/1831280131/w/favicon.ico" rel="shortcut icon">



<link href="/an/w/aw6_sgn.css" type="text/css" rel=stylesheet><script>
function globalNavCallback (headerContent,footerContent)
{
// set the header content
window.SupplierGlobalNavContentDivStorage = headerContent;
window.SupplierGlobalNavFooterDivStorage = footerContent;
};
</script>
<script src="https://service.ariba.com/Authenticator.aw/ad/supplierGlobalNav/ad/supplierGlobalNav?sgnprops=bG9jYWxlfGVuLFVTLHxhcHB8U3VwcGxpZXJ8bG9nb3V0VVJMfGh0dHBzOi8vc2VydmljZS5hcmliYS5jb20vU3VwcGxpZXIuYXcvMTI1MDA1MDU4L2FkL2xvZ291dHxpZXNIZWFkZXJFbmFibGVkfHRydWV8dGFibmFtZXx0cmFuc2FjdHxEaXNhYmxlQWN0aW9uVXJsc3xmYWxzZXxlZGl0UHJvZmlsZURvbmV8aHR0cHM6Ly9zZXJ2aWNlLmFyaWJhLmNvbS9TdXBwbGllci5hdy8xMjUwMDUwNTgvYXc_YXdoPXImYXdzc2s9WE9YTmxEcnh8c3dpdGNoVXNlcnxodHRwczovL3NlcnZpY2UuYXJpYmEuY29tL1N1cHBsaWVyLmF3LzEyNTAwNTA1OC9hZC9zd2l0Y2hVc2VyfGluVGVzdE1vZGV8dHJ1ZXxyZWRpcmVjdFNlc3Npb25JRHx6Q0prZkFjdW9SaE1xU2p3Sk5zM21nak5uQzJjMHBJMXxpc09PTWVudUVuYWJsZWR8ZmFsc2V8aXNNZXNzYWdpbmdFbmFibGVkfHRydWU*"></script>




</head>

<body class="is-dnone">



<script>RJS(true, true, false, function(){
ariba.Refresh.checkParentFrame(false);
});</script>
<div id="AWHistoryFrameDiv"></div><div class="rr relocdest" id=BPR_Alert>

<div class=rr id=_clgsz>

<div id="AWAlertNotificationPanel" class="alertNotification shadow w-alert-notification w-alert-shadow hide is-dnone">
<div id="alertListContent" class="alertListContent w-alert-list-content">


<!--no alerts-->



</div>

<div class="close w-alert-close">
<a id=_jypoxc href="#" bh=HL _sf=false class=noLine>

<span aria-hidden="true" data-icon="&#xe03e;"/>

</a>
</div>

</div>

</div>



</div>
<div class="rr relocdest" id=BPR_Body>



<script>RJS(true, true, false, function(){
ariba.Dom.setBodyClass("a-dashbrd-page-bg");
ariba.Dom.ApplicationType = "";

});</script>






<div id = "UIPreferencesBanner">

</div>





<link href="/an/1831280131/p/Ariba/components.min.css" type="text/css" rel=stylesheet>











<script>RJS(true, false, false, function(){
ariba.Event.registerBehaviors({
SGNML: {
// this fires before menuOnMouseDown
mousedown : function (elm, evt) {
// invoke the handlers for onRefreshRequestBegin event for selenium
//Event.invokeRegisteredHandlers("onRefreshRequestBegin");
var target = elm.getAttribute("_t");
//if any value passed on _t/target,we open the the link in new browser
if (target) {
ariba.Dom.openNewWindow(elm.href);
}
else {
var e = elm.getAttribute("_t");
if (e != null) {
window.open(elm.href, e);
}
else {
location.href = elm.href;
}
}
}
},
SGNSPML: {
// this fires before menuOnMouseDown
mousedown : function (elm, evt) {
// invoke the handlers for onRefreshRequestBegin event for selenium
//Event.invokeRegisteredHandlers("onRefreshRequestBegin");
location.href = elm.href;
}
},
SGNCA: {
// We are simulating a component action from the direct action
// Look for the Supplier Login Div in the page -> A link -> Invoke the link
// for more info refer to Handler.js -> GAT (Generic Action Tag)
click : function (elm, evt) {
var caDiv = ariba.Dom.getElementById("SupplierLogin");
if (caDiv == null) {
return false;
}
var caLink = Dom.findChild(caDiv,"A",false);
if (caLink == null) {
return false;
}
var formId = Dom.boolAttr(elm, "_sf", true) ? Dom.lookupFormId(elm) : null;
ariba.Handlers.tagOnClick(caLink, formId, elm.getAttribute("_t"), elm.getAttribute("_a"),
evt, Dom.boolAttr(elm, "_av"), elm.getAttribute("_w"));
return false;
}
},
SGNSP: {
click : function (elm, evt) {
if (!elm.getAttribute("_visited")) {
var scriptTag = document.createElement("script");  // create a script element
scriptTag.src = elm.getAttribute("_spUrl");
var divObj = ariba.Dom.getElementById("SGNSplashDiv");
divObj.appendChild(scriptTag);
}
}
}
});
});</script>



<script>RJS(true, false, false, function(){
splashCallback=function (htmlContent) {
var divObj = ariba.Dom.getElementById("SGNSplashDiv");
if(ariba.Dom.IsIE && ariba.Util.isAW5()){
var divObj = ariba.Dom.getElementById("SGNSplashDiv");
var newdiv = document.createElement("div");
newdiv.innerHTML = htmlContent;
divObj.appendChild(newdiv);
}
else{
divObj.innerHTML = htmlContent;
}
ariba.Widgets.showConfirmation("SGNSplashDivID", true);
};
hideSplash=function () {
var divObj = ariba.Dom.getElementById("SGNSplashDiv");
divObj.innerHTML = "";
ariba.Widgets.cancelConfirmation();
};
});</script>

<div id="SupplierGlobalNavContentDiv"></div>
<script src="/an/w/hover_card.js"></script>


<script>RJS(true, false, false, function(){
renderGlobalNav=function () {
var headerDiv = ariba.Dom.getElementById("SupplierGlobalNavContentDiv");
if (headerDiv.innerHTML != window.SupplierGlobalNavContentDivStorage) {
var t = document.createElement('div');
t.innerHTML = window.SupplierGlobalNavContentDivStorage;
headerDiv.appendChild(t);
var scripts = t.getElementsByTagName('script');
if(scripts){
// convert HTMLCollection to Array so that it can be iterated easily
Array.prototype.slice.call(scripts).forEach(function(scriptElm){
if(scriptElm.hasAttribute("isinjectable") && scriptElm.getAttribute("isinjectable")=="true"){
var scriptTag = document.createElement('script');
scriptTag.src = scriptElm.src;
var onEventCall=scriptElm.getAttribute("onloadevent");
scriptTag.onload = function (){
var onLoadCallValue = onEventCall;
var onLoadFunction = new Function(onLoadCallValue);
onLoadFunction();
};
t.appendChild(scriptTag);
}
});
}
}
try {
var aobj = ariba.Dom.getElementById("SGNAlertId");
if (aobj != null) {
ariba.Widgets.displayNewsHover("SGNAlertId");
}
}
catch (ex) {
// nothing here
}
};
renderGlobalNav();
});</script>





<div class="rr relocdest" id=BPR_Body_Inner>
<table border="0" cellpadding="0" cellspacing="0" width="100%">






<tr>
<td valign=top>
<table border="0" cellpadding="0" cellspacing="0" width="100%">

<tr>
<td>

</td>
</tr>



<tr>
<td class=cmdBar name=mastHeadCmdBarClass>
<table width="100%" border="0" cellspacing="0" cellpadding="0">

<tr>
<td valign=bottom>


<div class=ADMastCmd id=_apj6gc>

<div class="mastCmd">
<div class="cmdTabWrapper">
<div class="SupplierTabPadding">
<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tr>
<td width="100%">




<div type=dashboardTabs class="w-dashboard-tabs" id="ies-tab">
<ul class="w-tablist">


<li class="w-tabitem w-tabitem-selected">

<span class="w-tabitem-a w-tabitem-a-slctd">

<a id=_2romec href="#" bh=HL _sf=false help-id=74>Home
</a>
<div class="active-marker"></div>

</span>

</li>





<li class="w-tabitem">
<span class="w-tabitem-a">



<a href="#" class="w-tabitem-a" _mid=SUPInbox bh=PML id=_hsskcb submitForm=false>Inbox
<span aria-hidden=true data-icon="&#xe1ef;" help-id=4 class="tab-list-popup-icon">
</a>

<div class="awmenu w-pm-menu is-dnone" id=SUPInbox _reloc=1>
<div class="w-pm-dummy-img"><img width="0" height="0" border="0"/></div>

<div class="ies-menu-dropdown-container">


<a id=_vilcyd bh=PMI class="w-pmi-item fd-menu__item" href="#" tabIndex="-1">

<span help-id=77>
Orders and Releases</span>
</a>

.....
...