我在Ruby中进行了一系列自动化测试,使用Capybara,Poltergeist和PhantomJS与网页进行交互。但是,问题是某些页面无法正常工作,因为jQuery似乎没有加载。例如,在一个网页上有代码如:
<script type="text/javascript">
<!--
jQuery(window).load(function() {
//Do Javascript-y things
});
//-->
</script>
但这似乎不起作用/运行。从我所看到的看来,PhantomJS似乎不能自然地与jQuery一起工作(或者至少它不会自动加载jQuery)。我怎样才能解决这个问题。请记住,我无法更改网页的实际代码。
总结:如何在使用PhantomJS,Poltergeist和Capybara时添加/注入/加载jQuery?
编辑:这是我如何使用phantomjs。请注意我从未直接使用过phantomjs。 Phateromjs可执行文件由Poltergeist间接使用:Capybara.register_driver :poltergeist do |app|
driver = Capybara::Poltergeist::Driver.new(app,
:debug => debug,
:window_size => [1616, 1000],
:js_errors => true,
:cookies => true,
:phantomjs_options => ['--ignore-ssl-errors=true',
'--web-security=false',
'--local-to-remote-url-access=true',
'--proxy-type=none' ],:timeout => 180
)
答案 0 :(得分:0)
可能你的jQuery需要时间来执行。在测试中添加一个find()语句,查找jQuery的结果。它将阻止,如下所述:http://www.elabs.se/blog/53-why-wait_until-was-removed-from-capybara