[[{"message"=>"ReferenceError: Can't fi-6ren">
gpt4 book ai didi

Capybara poltergeist phantomjs 音频上的 JavascriptError

转载 作者:行者123 更新时间:2023-12-02 00:15:21 27 4
gpt4 key购买 nike

我遇到异常:

Capybara::Poltergeist::JavascriptError

和调试输出:

"args"=>[[{"message"=>"ReferenceError: Can't find variable: Audio"

Here's what I found when researching the error:

This issue is due to sencha 2.0 using phantomjs in order to resolve dependencies. Phantomjs does not support the HTML5 Audio API.

问题是:在使用 capybara/poltergeist 时如何忽略 javascript 音频类型的 javascript 错误?

我试过了

visit "/"
page.execute_script "var Audio= function(){ return { load: function(){}, play: function(){} } }"

但是访问方法会抛出错误。

最佳答案

Phantomjs 不支持 git 文档中指定的 Audio here

我遇到了同样的问题,也尝试使用您描述的代码来遵循您的方法,但不使用 var 因此它将在全局范围内定义。

page.execute_script "Audio= function(){ return { load: function(){}, play: function(){} } }"

我用检查器 page.driver.debug 测试了它,它在 phantomjs 中正确定义了 Audio,然后问题是,它之前没有被执行这是需要的。

因此,我的方法是添加一个检查以验证 Audio 是否已定义,然后再实际将它与我的实际代码中的函数一起使用。这是我拥有的功能的示例:

getAudioObject = function(file_path){
if (typeof Audio !== "undefined" && Audio !== null) {
audioObj = new Audio(file_path);
audioObj.loop = true;
return audioObj;
}
}

那是我的解决方案,对我很有效。我希望这对您也有帮助。

关于Capybara poltergeist phantomjs 音频上的 JavascriptError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13434111/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com