【问题标题】:Unsafe JavaScript attempt to access frame with URL - Warning arises with poltergeist, but not selenium-webdriver不安全的 JavaScript 尝试使用 URL 访问框架 - poltergeist 会出现警告,但 selenium-webdriver 不会出现警告
【发布时间】:2016-06-26 03:59:48
【问题描述】:

一段时间以来,我一直在我的 Rails 应用程序上使用 Selenium-Webdriver 作为 javascript 驱动程序运行 Cucumber 测试,并获得了稳定的结果。我尝试切换到 Poltergeist 以无头运行。

我的一些测试运行了一个测试 Stripe 事务,它触发了一个 javascript 弹出窗口。我有如下步骤:

When(/^I wait to see "([^"]*)" in a Stripe popup$/) do |arg1|
  within_frame 'stripe_checkout_app' do
    wait_until do
      expect(page).to have_content(arg1)
    end
  end
end

当我使用 selenium 作为我的 Capybara javascript 驱动程序时,这些步骤运行得非常好,但是当我使用 :poltergeist 作为 javascript 驱动程序时它们会失败。我收到如下错误:

 Unsafe JavaScript attempt to access frame with URL http://127.0.0.1:64780/charges/1/edit from frame with URL https://checkout.stripe.com/v3/VguVZoYKogJUsO05PpIlfA.html?distinct_id=ad0ab5bb-c346-dac7-62dc-2a4a8e4dcf64. Domains, protocols and ports must match.

有谁知道为什么poltergeist会出现这种错误,而selenium-webdriver不会出现这种错误?

【问题讨论】:

  • 你用的是什么版本的FF和selenium-webdriver,你现在用的是什么版本的phantomjs?

标签: javascript ruby-on-rails selenium poltergeist


【解决方案1】:

您可以通过在您的 poltergeist 驱动程序注册中禁用网络安全 - phantomjs_options = ['--web-security=false'] 来消除该消息。但是,您确定这是一个错误而不仅仅是一个警告吗?任何现代浏览器都会阻止来自不同域的帧之间的访问(出于非常实际的安全原因应该这样做)。

【讨论】:

    猜你喜欢
    • 2010-10-25
    • 2020-04-16
    • 1970-01-01
    • 1970-01-01
    • 2012-07-17
    • 2011-11-18
    • 1970-01-01
    相关资源
    最近更新 更多