未捕获到的DOMException:在页面中列出iframe时,阻止了具有“ http: localhost:8080”源的框架访问跨域框架

未捕获到的DOMException:在页面中列出iframe时,阻止了具有“ http: localhost:8080”源的框架访问跨域框架,第1张

未捕获到的DOMException:在页面中列出iframe时,阻止了具有“ http:// localhost:8080”源的框架访问跨域框架

此错误消息…

Uncaught DOMException: Blocked a frame with origin "http://localhost:8080" from accessing a cross-origin frame.

…意味着 WebDriver 实例 被阻止 访问跨域框架。


同源政策

同源策略同源策略限制从一个来源加载的文档或脚本如何与另一个来源的资源进行交互。它是隔离潜在恶意文档的 关键安全机制


跨域资源共享(CORS)

跨域资源共享(CORS)
:跨域资源共享(CORS)是一种机制,该机制使用其他 HTTP标头来 告诉 浏览器客户端 让在一个来源(域)运行的 AUT(被测应用程序
)具有访问权限从不同来源的服务器中选择资源。一个Web应用程序进行 跨域HTTP请求
时,它要求具有不同的原点(资源

domain
protocol
port
)比它自己的起源。


起源的例子

这是URL的来源比较示例

http://store.company.com/dir/page.html

URL      Outcome    Reasonhttp://store.company.com/dir2/other.html  Successhttp://store.company.com/dir/inner/another.html      Successhttps://store.company.com/secure.html     Failure    Different protocolhttp://store.company.com:81/dir/etc.html  Failure    Different porthttp://news.company.com/dir/other.html    Failure    Different host

什么地方出了错

当您尝试遍历

frames
脚本/程序时,尝试
<iframe>
使用Javascript 访问具有不同来源的脚本/程序,如果能够实现,将是一个巨大的
安全漏洞 。如上所述, 同源策略 浏览器会阻止试图访问
<iframe>
源不同的脚本。

如果两个网页的 协议端口 (如果指定了一个)和 主机 相同,则两个页面的来源相同。您有时会看到它称为

"scheme/host/port tuple"
“时间”(其中“元组”是三个组成一个整体的组件的集合)。或许 协议域名
主机名端口 ,当你想访问所需的框架必须是同你同一个域。

所述 AUT 可能包含众多 / 内部框架 和其中一些可能只有在某些加载 的Javascript / Ajax的
已完成,其中作为它们中的一些可以具有 样式 属性集为 显示:无;可视性隐藏
。当然,不需要与所有人互动。因此,这将是识别和相应切换 属性 的更好方法

<iframe>
。您可以
<iframe>
通过以下方式切换到:

  • frame Name
  • frame ID
  • frame Index
  • WebElement

按照 最佳做法, 当你的意图切换到框架诱导
WebDriverWait

frameToBeAvailableAndSwitchToIt 按照下面的引用。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5586119.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-14
下一篇 2022-12-14

发表评论

登录后才能评论

评论列表(0条)

保存