Javascript 单击onclick属性随机更改的每个onclick
我需要废弃一个网页,然后点击网页上的多个标签。 我正在检查onclick的属性值是否随机更改,并且找不到选择每个选项卡的方法。onclick属性是: onclick=单击仪表板“8891137337776” onclick=单击仪表板的894967889413237' 这是我想尝试单击每个选项卡的html片段。我通过getHTMLcasprjs函数得到它,如果我尝试从源代码crtl+U复制,我只会看到javascript代码。您还可以看到li标记类是如何“activetab”的,以指示显示哪个选项卡。链接到完整的html源文件Javascript 单击onclick属性随机更改的每个onclick,javascript,onclick,casperjs,Javascript,Onclick,Casperjs,我需要废弃一个网页,然后点击网页上的多个标签。 我正在检查onclick的属性值是否随机更改,并且找不到选择每个选项卡的方法。onclick属性是: onclick=单击仪表板“8891137337776” onclick=单击仪表板的894967889413237' 这是我想尝试单击每个选项卡的html片段。我通过getHTMLcasprjs函数得到它,如果我尝试从源代码crtl+U复制,我只会看到javascript代码。您还可以看到li标记类是如何“activetab”的,以指示显示哪个选
<!--TEMPLATES-->
<ul id="tabul">
<li id="litab" class="ntabs add"><a href="" id="addtab" class="osx">+</a></li>
<li id="litab" class="add rightAlign setting-item">
<img src="/Content/images/icons/expand-24x24.png" class="out-triggerer gray" onclick="fullScreen()">
</li>
<li id="default-report-export" class="rightAlign">
<a href="/report/defaultExport" download="">
<input type="image" src="/Content/images/icons/excel.gif" value="Excel" title="Export default report">
</a>
</li>
<li id="default-report-export" class="rightAlign">
<a href="/report/defaultExport?isPdf=true" download="">
<input type="image" src="/Content/images/export-pdf-24x24.png" value="Excel" title="Export default report">
</a>
</li>
<li id="dbTab_889113733777776" class="ntabs addedTab activeTab">
<span id="dbTabLabel_889113733777776" class="dashTitle" onclick="clickDashboard('889113733777776')">Dashboard EUR</span>
<span id="dbTabSettings_889113733777776" class="settingsContainer dashSettings" style="">
<div id="topnav" class="topnav">
<a href="javascript:void(0)" class="signin" onclick="toggleTabSettingsMenu('889113733777776',true);">
<span><img src="/Content/Images/icon_gear.png" alt="Edit"></span>
</a>
</div>
<fieldset id="dbTabSettingsMenu_889113733777776" class="dashSettings-menu">
<ul class="dashboardEditMenu">
<img src="/Content/images/close.png" onclick="toggleTabSettingsMenu('889113733777776',false);" alt="tooltip" style="position:absolute;right:2px;top:2px;border:0;">
<li class="dashboardEditMenuList">
<a href="javascript:void(0)" class="addWidget" onclick="toggleLeftUpdatePanelMenu(true);"> Añadir widgets</a>
</li>
<li class="dashboardEditMenuList">
<a href="javascript:void(0)" class="closeDash" onclick="deleteDashboard('889113733777776')"> Borrar este dashboard</a>
</li>
</ul>
</fieldset>
</span>
</li>
<li id="dbTab_894967889413237" class="ntabs addedTab">
<span id="dbTabLabel_894967889413237" class="dashTitle" onclick="clickDashboard('894967889413237')">Dashboard USD</span>
<span id="dbTabSettings_894967889413237" class="settingsContainer dashSettings" style="display:none;">
<div id="topnav" class="topnav">
<a href="javascript:void(0)" class="signin" onclick="toggleTabSettingsMenu('894967889413237',true);">
<span><img src="/Content/Images/icon_gear.png" alt="Edit"></span>
</a>
</div>
<fieldset id="dbTabSettingsMenu_894967889413237" class="dashSettings-menu">
<ul class="dashboardEditMenu">
<img src="/Content/images/close.png" onclick="toggleTabSettingsMenu('894967889413237',false);" alt="tooltip" style="position:absolute;right:2px;top:2px;border:0;">
...
</ul>
</fieldset>
</span>
</li>
</ul>
我正在尝试选择每个选项卡并使用以下代码制作屏幕截图:
//Wait to be redirected to the Home page, and then make a screenshot
casper.then(function(){
casper.wait(5000, function(){
this.capture('home.png');
var tabs = document.querySelectorAll('[id^=dbTabLabel]');
var i;
console.log('Tabs found: ' + tabs.length);
for(i = 0; i < tabs.length; i++) {
tabs.click()
var name = 'tab' + i + '.png'
this.capture(name); //Make a screenshot for each tab
}
})
});
但它似乎没有选择任何选项卡,因为输出是找到的选项卡:0我建议使用
casper.each(tabs, function(self, tab){
};
取而代之的是。此外,在QuerySelector中,将使用更通用的选择器,如ultabul li。我尝试在casperjs脚本中使用for循环,但总是出现错误,每次都使用一个或多个通用选择器 谢谢,但是我还是不能选择那些li块。正如您所说,我使用更通用的选择器进行测试,选项卡始终为空。我对原始问题进行了编辑,以添加登录后获得的完整html文件,并使用getHTML casperjs函数保存。我不知道我的问题是否只发生在我因为一些嵌入式脚本而在飞行中抓取时。我对此感到迷茫。