抓取javascript事件的结果

时间:2013-07-03 18:46:37

标签: javascript phantomjs

我正在尝试使用Phantom.JS抓取页面http://www.buddytv.com/trivia/game-of-thrones-trivia.aspx

以下是代码:

 search = page.evaluate(function() { 
     return  '<div class="question">' + $('#id60questionText').text() +  '</div>';
 });
 results = page.evaluate(function() { 
     return  $('#id78questionRegion').html();
 });
 answer = page.evaluate(function() { 
      $('a[href="javascript:___gid_10(0)"]').trigger("click");
     return  $('body').html();
 });

前两部分没有问题,但最后一部分没有问题。基本上,我想点击第一个答案,然后返回完成后出现的页面内容(并选择答案,但在网站上显得过快,我无法检查它所在的选择器)。无论如何,返回的html不包含答案,我猜我没有正确触发点击。有什么建议吗?

非常感谢,你们都很棒,

1 个答案:

答案 0 :(得分:0)

如果查看trigger的jQuery源代码,可以看到

elem[type]();

但不幸的是HTMLElement.click是非标准的,在PhantomJS中不可用。还有一个原因就是不使用jQuery。见PhantomJS; click an element

PhantomJS没有打印错误信息吗?我希望看到像elem.click is not a function这样的东西。否则,您可以尝试将其包装在try / catch块中并console.out发生错误。如果仍然无法解决您的问题,您可以远程调试;谷歌为“phantomjs远程调试”。