我正在抓取一个页面,该页面有一个带有链接的按钮,该按钮执行 JavaScript 函数。 单击按钮时,将打开一个模式,其中包含我想要抓取内容的文本区域。 按钮链接html代码是这样的。
<a id="get_code_atag_476192" href="javascript:void(0);" onclick="getCode(476192)" class="getCode"><img src="/templates/default2/images/icon-edit.png" alt="Λήψη κώδικα" title="Λήψη κώδικα"></a>
单击按钮时,它会动态创建以下带有我感兴趣的文本区域的 html。
<div class="modal getCode jqmID1" id="getCodeModal" style="z-index: 30000; display: block; top: 617px;">
<p class="title">
<span>Λήψη κώδικα δημιουργικού</span>
<a href="javascript:void(0);" class="close" id="getCodeModalClose"><span>close</span></a>
</p>
<fieldset>
<div style="position:relative;">
<img id="shorten_link_image" src="/templates/default2/images/ajax_loader.gif" style="display: none; position: absolute; top: 45px; left: 257px;">
<textarea name="copythis" id="copythis" readonly="readonly" class=""><script type="text/javascript" src="//go.linkwi.se/delivery/js/crl.js"></script>
<script type="text/javascript">
LinkwiseCreative.show("13536-49", "CD26071", "_blank");
</script>
<noscript>
<iframe id="lkws_653d5ccd6eccd" name="lkws_653d5ccd6eccd" src="//go.linkwi.se/delivery/ih.php?cn=13536-49&amp;an=CD26071&amp;target=_blank&amp;" style="width:250px;height:250px" scrolling="no" frameborder="0"></iframe>
</noscript></textarea>
关于如何实现这一目标有什么想法吗??? 预先感谢。
我已经尝试过了
let codeButtons = await page.evaluate(() => {
let code = Array.from(document.querySelectorAll('.getCode'))
return code;
});
for (let i = 0; i <codeButtons.length; i++) {
await page.click(codeButtons[i]);
break;
}
(出现循环是因为页面中有多个按钮。) 但它不起作用。
找到了。 等待页面.waitForSelector(选择器); 等待页面.单击(选择器);
无论如何谢谢!!