标签: phantomjs

使用Casperjs清除当地存储

我正在使用casperjs使用localstorage对backbonejs应用程序进行一些测试.

我的问题是,在使用casperjs进行测试时,我无法清除localstorage.

我一直试图localStorage.clear();在我的casper文件的开头使用但没有清除.

javascript local-storage phantomjs casperjs

2
推荐指数
2
解决办法
3252
查看次数

在Vagrant框中运行Selenium/PhantomJS

我正在尝试使用行为设置测试Web应用程序,该行为基于行为分裂运行 - 后者又使用Selenium来驱动PhantomJS.所有这些都在VirtualBox提供的运行CentOS 6.4的Vagrant盒子里面.我安装了Selenium pip,我从Nux Dextop repo 安装了PhantomJS .

试图运行我的测试冻结Behave 30秒,然后提出:

selenium.common.exceptions.WebDriverException: Message: 'Can not connect to GhostDriver'
Run Code Online (Sandbox Code Playgroud)

我想我已经把它钉到了无法打开套接字的地方,事实上,当我尝试从Python交互式shell中执行此操作时,我根本无法打开任何套接字到localhost.如何让我的测试运行?

selenium vagrant phantomjs

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

PhantomJS设置浏览器时区设置

我正在用PhantomJS运行Karma来运行一些单元测试.

在我的单元测试中,有一些测试会进行一些日期比较,这些测试在本地运行时都会通过.

我们的构建服务器位于不同的时区,由于时区不同,日期测试失败.

我查看了phantomjs选项,并没有看到任何关于区域设置或时区的选项.是否可以将phantomJs配置到每台计算机上的同一时区,即使它们是不同的时区?

node.js phantomjs karma-runner

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

无法从CasperJS中的thenEvaluate()函数中访问变量

我最近开始学习CasperJS,我正在尝试登录YouTube.这是我目前的代码:

// XPathSignInButton is predefined
var Username = 'user123';
var Password = 'pass123';

casper.waitForSelector(xPathSignInButton, function() {
    this.thenEvaluate(function() {
        $('#Email').val(Username);
        $('#Passwd').val(Password);
    });
}); 
Run Code Online (Sandbox Code Playgroud)

上面的代码不会操作输入字段(不会在其中写入),但是如果我替换thenEvaluate()this.fillSelectors(),则会正常访问变量并且一切正常:

// XPathSignInButton is predefined
// signInFormSelector is predefined
casper.waitForSelector(xPathSignInButton, function() {
    this.fillSelectors(signInFormSelector, {
        'input[name="Email"]': Username,
        'input[name="Passwd"]': Password
    });
});
Run Code Online (Sandbox Code Playgroud)

我首先想到我如何调用jQuery有一个问题,但当我用实际的字符串替换变量时:$('#Email').val('user123');$('#Email').val('pass123');- 它就像一个魅力.

我的问题是如何从thenEvaluate()函数中访问变量.它可能吗?

javascript scope phantomjs casperjs

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

如何在phantomjs中实现快速,可查询和持久的数据库?

我一直在使用phantomjs在服务器端dom环境中为我做一些繁重的工作.直到现在我一直把数据结构放在内存中(即对它们没什么特别的),一切都很好.但最近在一些用例中我开始遇到以下问题:

  1. 内存使用率变得太高,导致交换启动并严重影响我的性能.
  2. 无法从上一个保存点恢复,因为内存中的数据结构不是持久的(显然)

这迫使我寻找一个用于幻像的数据库解决方案,但在决定解决方案时我又遇到了问题:

  1. 我不希望我的表演太受影响.
  2. 它必须是持久的和可查询的
  3. 我怎么能从幻像脚本里面连接数据库.

谁能引导我找到满意的解决方案?

注意:我几乎已经决定,sqlite但从幻影连接到它仍然是一个问题.Nodejs提供sqlite3节点模块,我正在尝试browserify使用幻像.

注意注意: Browserify没有用!回到地面零!:-(

Thanx提前!

sqlite node.js phantomjs browserify

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

Karma测试:PhantomJS:ReferenceError:找不到变量:Audio

我正在尝试使用Karma和PhantomJS来测试我的应用程序,我收到错误:

   PhantomJS 1.9.8 (Windows 7) Controller: SongsCtrl should attach a list of awesomeThings to the scope FAILED
ReferenceError: Can't find variable: Audio
Run Code Online (Sandbox Code Playgroud)

我的AngularJS服务中的违规行是:

   var audio = new Audio();
Run Code Online (Sandbox Code Playgroud)

当我在浏览器中运行它时,当然可以正常运行,但由于它是原生HTML5元素,因此PhantomJS似乎无法识别它.

有谁知道我怎么解决这个问题?

audio html5 phantomjs angularjs karma-jasmine

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

如何添加PhantomJSDriver命令行参数

如何为Java PhantomJSDriver指定命令行参数?例如,我想设置--ignore-ssl-errors=yes我运行的脚本.

java selenium phantomjs

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

在PhantomJS中返回d3 SVG HTML

我正在使用PhantomJS + d3在服务器上呈现SVG.我能够在内部使用d3创建的SVG返回整个页面的HTML,但是如果我尝试只返回SVG,那么我会回来null.

var page = require('webpage').create();
page.content = '<html><body></body></html>';

page.includeJs('http://d3js.org/d3.v3.min.js', function() {
    var html = page.evaluate(function() {
        var body = d3.select('body');
        var svg = body.append('svg');
        svg.append('rect');
        svg.append('circle');
        return body.html();
    });
    console.log(html);
    phantom.exit();
});
Run Code Online (Sandbox Code Playgroud)

退货<script src="http://d3js.org/d3.v3.min.js"></script><svg><rect></rect><circle></circle></svg>.

但是,如果我更改return body.html()return svg.html(),null被返回.

我正在使用PhantomJS 1.9.8和d3.v3.js. 关于为什么我不能选择svg的任何想法?

phantomjs d3.js

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

如何使用Selenium C#PhantomJSDriver设置http referer标头?

在C#控制台应用程序中使用Selenium C#PhantomJSDriver时,如何设置http referer标头?

我正在使用PhantomJSDriver和我无法控制的代理.

PhantomJSDriverService service = PhantomJSDriverService.CreateDefaultService();
service.AddArgument("--proxy=123.456.78.910:80");
service.AddArgument("--proxy-auth=myproxyuid:myproxypwd");
IWebDriver driver = new PhantomJSDriver(service);
driver.Navigate().GoToUrl("http://www.testsite.com/product/123/");
Run Code Online (Sandbox Code Playgroud)

但是,正在测试的Web应用程序会对请求中的HTTP Referer值执行验证.

我可以使用什么方法在PhantomJSDriver请求中注入HTTP Referer?

c# http-referer proxy selenium phantomjs

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

如果使用PhantomJS,权限错误

我有一个Selenium-Python适用于Firefox和的脚本Chrome,但有时会引发以下异常,如果使用PhantomJS:

Exception ignored in: <bound method Service.__del__ of <selenium.webdriver.phant
omjs.service.Service object at 0x000000000439FE80>>
Traceback (most recent call last):
File "C:\Python34\Lib\site-packages\selenium\webdriver\common\service.py", line 151, in __del__
self.stop()
File "C:\Python34\Lib\site-packages\selenium\webdriver\common\service.py", line 127, in stop
self.send_remote_shutdown_command()
File "C:\Python34\Lib\site-packages\selenium\webdriver\phantomjs\service.py", line 68, in send_remote_shutdown_command
os.remove(self._cookie_temp_file)
PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\OB865~1.LUC\\AppData\\Local\\Temp\\tmpe6zrcjem'
Run Code Online (Sandbox Code Playgroud)

脚本的要点是遍历文件列表:为每个文件启动浏览器会话,发送文件进行分析,获取并保存结果,关闭浏览器.在大约50%的情况下会话重新打开(在driver.close()和之间driver = webdriverPhantomJS())下一次迭代时出现问题...

关于什么可能导致这个问题及其如何解决的任何假设?

PS如果需要任何其他信息,请告诉我

python selenium phantomjs selenium-webdriver

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