0

我想从 Perl 检查一些 DOM 值(我不想手动使用浏览器和调试器)。

这些 DOM 值是在 AJAX 调用之后加载的,这些值之一的示例函数将是:

<script language="javascript">
    try {   
        var openValue = FComma(fnRound(Symbol[24],2));
        if (openValue == "0.00") document.write('n/a');
        else document.write(openValue);

    } catch (exception) {}
</script>

我不能直接从 AJAX 得到它。我想知道在 AJAX 调用完成后是否有可能获取 DOM 值。此调用仅在开始时完成。

4

2 回答 2

0

尝试使用WWW::Scripter

use WWW::Scripter;
$w = new WWW::Scripter;
 
$w->use_plugin('Ajax');  # packaged separately
 
$w->get('http://some.site.com/that/relies/on/ajax');
$w->eval(' alert("Hello from JavaScript") ');
$w->document->getElementsByTagName('div')->[0]->....
 
$w->content; # returns the HTML content, possibly modified
             # by scripts
于 2013-03-18T19:31:47.627 回答
0

我会做的(呃,试试,因为我不确定这会做你想要的)是:使用安装了 Web Developer 附加组件的 Firefox。页面加载完毕并完成 AJAX 内容后,转到 Web Developer 的 View Source 菜单并选择 View Generated Source;将源代码复制/粘贴到您的编辑器和/或 Perl 脚本中,然后用它做您想做的事情。

于 2013-03-16T00:02:49.880 回答