如何在 PhantomJS 只知道弹出窗口 ID 的情况下打开弹出窗口?

How do I get a popup open with PhantomJS only knowing the popup id?

我正在尝试使用 PhantomJS 打开通常通过 link 调用的弹出窗口并转储该弹出窗口的图片。我只找到了使用 id 的方法,但所有 link 都具有相同的 id、相同的 href 值和相同的标题。所有 link 之间的唯一区别是 showpopup 函数中的 3 个字母代码对应于 3 个字母 link 文本。

如何做到这一点?我可以只触发 ShowPopup('XXX') 功能还是需要想办法实际点击 link?

<a href="#" id="ShowInfoHref" title="ABC" onclick="ShowPopup('XXX');return false;">XXX</a>

此 link 将打开弹出窗口:

<div class="ui-dialog-content ui-widget-content" id="XXX" style="width: auto; min-height: 25.7667px; height: auto;">...code...</div>

我认为我可以只拥有 div 正确的 phantomjs 屏幕转储?

最简单的方法就是调用 ShowPopup('XXX'):

page.evaluate(function(){
    ShowPopup('XXX');
});
setTimeout(function(){
    // do something with it
}, 1000);

您还可以 click the link 使用特定属性 CSS 选择器 a[onclick*="XXX"][attribute*=value] 选择器匹配属性包含任意位置值的元素。