相关疑难解决方法(0)

phantomjs - 没有为任何XHR/POST/GET AJAX请求发送Cookie

尝试使用PhantomJS登录时,我发现了一个有趣的问题.我不知道为什么它真的发生了.

基本上你启动一个远程调试器,如下所示:

/usr/local/bin/phantomjs --web-security=no --remote-debugger-port=13379 --remote-debugger-autorun=yes /tmp/test.js 
Run Code Online (Sandbox Code Playgroud)

在远程调试器中:

> location.href = "https://www.mysite.com/login"
> $('input[name="username_or_email"]').val('blah@email.com')
> $('input[name="password"]').val('wrongpassword')

> $('button[type="submit"]').submit()
Run Code Online (Sandbox Code Playgroud)

在Chrome中执行此操作会在XHR请求后给我正确的"错误密码"消息,而使用phantomjs会给我一个通用错误,因为没有使用phantomjs发送cookie(我检查了标题).

我很困惑为什么phantomjs不发送带有POST请求的cookie.有谁知道我们怎么能让phantomjs发送带有所有请求的cookie呢?设置cookie文件也没有任何区别.

cookies xmlhttprequest phantomjs

17
推荐指数
1
解决办法
1743
查看次数

在PhantomJs中下载POST请求响应中附件的文件

我想下载一个CSV文件,它是通过POST请求点击按钮生成的.我在casperJs和phantomJS论坛上进行了最好的研究并空手而归.在像firefox这样的普通浏览器中,在发布请求后会出现浏览器下载对话窗口.如何在PhantomJS中处理这种情况

TTP/1.1 200 OK
Cache-Control: private
Content-Type: text/html; charset=utf-8
Content-Encoding: gzip
Vary: Accept-Encoding
Server: Microsoft-IIS/7.5
Content-disposition: attachment;filename=ExportData.csv
X-AspNet-Version: 2.0.50727
X-Powered-By: ASP.NET
Date: Fri, 19 Apr 2013 23:26:40 GMT
Content-Length: 65183
Run Code Online (Sandbox Code Playgroud)

phantomjs casperjs

16
推荐指数
1
解决办法
2万
查看次数

如何下载和保存PDF文件,该文件在PhantomJS的响应标题中作为附件接收?

我正在尝试使用PhantomJS下载一些PDF文件.当我单击提交按钮时,没有用于下载PDF的直接URL,因为它调用了一些内部JavaScript函数.

这是我用来下载PDF文件的代码:

 page.open(url, function(status){
     page.evaluate(function(){
         document.getElementById('id').click();
     });
 });
 page.onResourceReceived = function(request){
     console.log('Received ' + JSON.stringify(request, undefined, 4));
 };
Run Code Online (Sandbox Code Playgroud)

'id'是提交按钮的元素id.这里的问题是,即使我得到响应(内部onResourceReceived回调)作为JSON格式,但我无法将附件保存为某些PDF文件.

当我运行上面的代码时,我得到以下输出作为JSON字符串:

 Received {
    "contentType": "application/pdf",
    "headers": [
        // Some other headers.
        {
            "name": "Content-Type",
            "value": "application/pdf"
        },
        {
            "name": "content-disposition",
            "value": "attachment; filename=FILENAME.PDF"
        },
    ],
    "id": 50,
    "redirectURL": null,
    "stage": "end",
    "status": 200,
    "statusText": "OK",
    "url": "http://www.someurl.com"
}
Run Code Online (Sandbox Code Playgroud)

请使用PhantomJS建议解决方案.谢谢!

javascript phantomjs

12
推荐指数
1
解决办法
6228
查看次数

如何使用PhantomJSDriver执行AJAX调用?

我的测试页面包含一个onclick进行ajax调用的链接,如下所示

 <a title="test delim" alt="" 
onclick="$find('MetricsReport').exportData('TAB');"
 href="javascript:void(0)" 
style="color: rgb(50, 50, 50); . . . ">Click to download</a> 
Run Code Online (Sandbox Code Playgroud)

单击上面的链接后,报告将下载到默认下载位置.

我正在用java selenium测试它

 ((JavascriptExecutor) driver).executeScript("$find('MetricsReport').exportData('TAB');"); 
Run Code Online (Sandbox Code Playgroud)

它工作正常ChromeDriver,但不起作用PhantomJSDriver.不会抛出任何错误.它有点执行但没有任何反应.该报告未下载

我怎样才能使用它PhantomJSDriver

java ajax selenium phantomjs

10
推荐指数
1
解决办法
370
查看次数