Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在水豚中重新扫描页面?_Javascript_Ruby On Rails_Capybara - Fatal编程技术网

Javascript 如何在水豚中重新扫描页面?

Javascript 如何在水豚中重新扫描页面?,javascript,ruby-on-rails,capybara,Javascript,Ruby On Rails,Capybara,下面是我对一个页面的规范,该页面使用一个按钮启动一些Javascript来扩展被截断的描述文本 它“获取描述和清单”,js:true-do product=product.create!(名称:“测试产品”,清单:0,说明:“这是一个测试说明,包含的文本比应有的多。”) customer=customer.create(:name=>Faker::name.name) 发票=发票。创建 订单=订单。创建(客户:客户,发票:发票) order.products假设这是一个功能测试,并且您需要如ca

下面是我对一个页面的规范,该页面使用一个按钮启动一些Javascript来扩展被截断的
描述
文本

它“获取描述和清单”,js:true-do
product=product.create!(名称:“测试产品”,清单:0,说明:“这是一个测试说明,包含的文本比应有的多。”)
customer=customer.create(:name=>Faker::name.name)
发票=发票。创建
订单=订单。创建(客户:客户,发票:发票)

order.products假设这是一个功能测试,并且您需要如capybara自述中所示的
capybara/rspec
,那么capybara应该在测试中看到
js
元数据,切换到由
capybara.javascript\u driver
配置的驱动程序(默认为:selenium-这将打开Firefox)而且不需要重新加载/刷新/重新刷新页面,因为Capybara从不缓存页面(每次检查文本时,它都是针对浏览器中的活动页面)


如果以上都是真的,并且您看到了这个问题,那么您的页面上要么有一个bug,要么您正在使用一个过时的驱动程序(Poltergeist等)来运行您的测试,它不支持您在页面中实际使用的JS。

这确实是一个使用Poltergeist的平板实验室。所以,我会调查的!有一次我尝试Selenium,我想Firefox的打开意味着我做错了什么@JonathanTuzman在这个时间点上的恶鬼基本上相当于7年前版本的Safari。如今的替代方案是直接CDP到Chrome驱动程序之一,如幻影(目前为beta版,提供具有现代浏览器支持的Poltergeist功能集),或Capybara使用Selenium(:Selenium,:Selenium_headless,:Selenium_Chrome,:Seleniu_Chrome_headless)预注册多个驱动程序选项或者您可以注册自己的硒设置-谢谢!可以无头运行selenium吗?答案似乎是“使用恶鬼”,这让我们回到了起点!lol@JonathanTuzman查看预注册的Selenium配置名称。如果指定
Capybara.javascript\u driver=:selenium\u headless
它将在无头Firefox中使用selenium(类似于:selenium\u chrome\u headless,但改用chrome)