-1

我正在尝试使用 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 不包含答案,我猜我没有正确触发点击。有什么建议吗?

非常感谢你们都很棒

4

1 回答 1

0

如果您查看 jQuery 源代码trigger,您会看到

elem[type]();

但不幸HTMLElement.click的是,它是非标准的,在 PhantomJS 中不可用。还有一个不使用 jQuery 的理由。参见PhantomJS;单击一个元素

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

于 2013-07-04T04:24:32.067 回答