【发布时间】:2018-01-15 06:39:42
【问题描述】:
我使用默认的 WebBrowser 控件在 C# 中编写了一个非常小的网站机器人。实际上,几乎所有东西都按照它应该的方式工作,但我似乎在自动化的最后一步遇到了问题。
该网站是使用多个 iframe 构建的。这没什么大不了的,因为我只是使用
访问这些框架及其元素webBrowser1.Document.Window.Frames[0].Document.GetElementById("element").InvokeMember("click");
但是,当 IFRAME 的源托管在与实际网站不同的域上时,这不起作用。当我在互联网上搜索我的问题的答案时,我偶然发现了一篇 MSDN 文章提到了这个特定问题,他们指的是针对跨站点脚本的安全措施,这可能是导致此错误的原因。
我真的找不到禁用此功能的方法,所以我继续并决定重新编码所有内容以使用 geckofx-12 而不是默认(基于 IE)的 Web 浏览器控件,但我遇到了类似的问题.. .
我的问题是:有什么办法可以绕过这种烦人的行为吗?我并不真正关心安全问题,也不关心是否正在使用 geckofx 或默认 Web 浏览器控件,我只想以编程方式访问托管在不同域上的站点的元素没有 遇到 UnauthorizedAccessException。
我很想从那里的大师那里得到建议。
【问题讨论】: