Ruby 拒绝将字符串作为JavaScript求值,因为';不安全评估';

Ruby 拒绝将字符串作为JavaScript求值,因为';不安全评估';,ruby,selenium,phantomjs,watir,Ruby,Selenium,Phantomjs,Watir,大家好,我正在使用phantomjs进行自动化测试。这是我的密码: capabilities = Selenium::WebDriver::Remote::Capabilities.phantomjs("phantomjs.page.settings.userAgent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36")

大家好,我正在使用
phantomjs
进行自动化测试。这是我的密码:

capabilities = Selenium::WebDriver::Remote::Capabilities.phantomjs("phantomjs.page.settings.userAgent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36")
  proxies = ['--ignore-ssl-errors=true', '--web-security=false', '--ssl-protocol=any']
  driver = Selenium::WebDriver.for :phantomjs, :desired_capabilities => capabilities , :args => proxies

  browser = Watir::Browser.new driver      
begin
  browser.goto(url)
  browser.goto url
  browser.driver.execute_script( "window.scrollBy(0,document.body.scrollHeight/2)" )
  sleep 1
  browser.driver.execute_script( "window.scrollBy(0,document.body.scrollHeight)" )
  sleep 1
  response = browser.html
  fileHtml = File.new("response_linkedin.html", "wb+")
  fileHtml.puts(response)
  fileHtml.close
  browser.close
  response
rescue Exception => e
  raise e.message.to_s
ensure
  browser.close
end
问题是当我试图执行script
window.scrollBy(0,document.body.scrollHeight/2)
以滚动窗口时,我的代码返回如下错误:

“errorMessage”:“拒绝将字符串作为JavaScript求值,因为在以下内容安全策略指令中,“safe eval”不是允许的脚本源


我想知道为什么我不能在
phantomjs
中运行脚本?注意:我正在使用
phantomjs
2.2.1版,因为有些人建议我降级1.9.8版(),不幸的是,降级到1.9.8版似乎不起作用。有人能帮我吗?

在phantomjs中运行javascript应该不会有任何问题

  • 试试看,如果你需要用Watir在视口中移动,这会改变你的生活
  • 使用最新版本的Watir,您现在可以轻松试用最新的Chrome无头功能:

    new(:chrome,{headless:true,args:args}


  • 有了,Chrome和Firefox中的无头功能将有更多的精力投入。

    嗨,谢谢,我想知道如果使用的是
    无头Chrome
    ,我怎么能用假用户代理欺骗浏览器?
    选项:{emulation:{userAgent:'foo;bar'}
    -谢谢,伙计,你的建议对我很有帮助如果你想进一步讨论的话,这里有一个#watir频道。