- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要编写函数来获取窗口中的真实顶部和左侧元素。
在 DotNetBrowser 中,我们可以获取坐标:
int Y = el.BoundingClientRect.Origin.Y;
int X = el.BoundingClientRect.Origin.X;
但如果元素进入 iframe,它不会给出真正的坐标。
public int realY(IElement el)
{
IFrame f = el.Frame;
if (f.IsMain)
{
return el.BoundingClientRect.Origin.Y;
}
else
{
IElement fel = GetElementByAtrTag("iframe", "name", f.Name);
return el.BoundingClientRect.Origin.Y + fel.BoundingClientRect.Origin.Y;
}
}
但它不是通用的,因为 iframe 没有名字(我在这个方法中使用的)或者可以是许多父 iframe。
public IElement FindIframe(IElement el)
{
if (el.Parent.NodeName != "IFRAME")
{
return FindIframe((IElement)el.Parent);
}
else return (IElement)el.Parent;
}
这个方法在到达父 iframe 元素时失败,并且他有 NodeName - #document
IFrame parentElFrame = el.Frame;
但 IFrame 没有 BoundingClientRect。
最佳答案
我为内部元素创建了返回父 iframe 的方法:
public IElement FindIframe(IElement el)
{
string docframe = el.Frame.Document.DocumentElement.OuterHtml;
IEnumerable<IElement> elements = ActiveTab.browser.MainFrame.Document.DocumentElement.GetElementsByTagName("iframe");
foreach(IElement e in elements)
{
IFrameElement ef = (IFrameElement)e;
if (ef.ContentDocument.DocumentElement.OuterHtml == docframe)
{
return e;
}
}
return null;
}
在我可以制作为 iframe 中的元素获取真实坐标的方法之后:
public Point realPlace(IElement el)
{
Point p = new Point(0, 0);
p.X = el.BoundingClientRect.Origin.X;
p.Y = el.BoundingClientRect.Origin.Y;
if (!el.Frame.IsMain)
{
Point pin = realPlace((IElement)FindIframe(el));
p.X += pin.X;
p.Y += pin.Y;
}
return p;
}
关于c# - 如何使用 DotNetBrowser 将父 iframe 作为 IElement?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65666853/
我想使用 DotNetBrowser 创建自定义浏览器,是否有任何支持或技巧可以启用 Chrome/Firefox/Opera 扩展?我知道很多扩展处理无法模拟的浏览器特定 UI 元素,但扩展代码的某
我正在尝试使用 DotNetBrowser,但出现错误: Unable to find or restore compatible Chromium binaries. The assembly Do
我正在使用 DotNetBrowser,或者至少正在尝试使用,并且我正在尝试获取文档中的所有复选框。 public static void SetCodecSettings() {
我们在 DotNetBrowser 上显示的网站包含验证码图像元素。在代码元素中捕获该元素图像类型的方法是什么? 网址:https://paydas.its.gov.tr/hesap_yonetimi
我正在查看示例,我已经找到了使用选项卡专注于 dom 元素的解决方案。我正在尝试专注于现场的文本区域,所以我使用虚拟 Tab 键来查找特定的文本区域及其正常工作。但任何人都可以建议如何直接关注文本区域
我不知道我做错了什么,我让它工作,做了一些事情,现在无法让它再次工作......对象在那里,但我无法访问它,总是以未定义的形式返回。我通过 DotNetBrowser window.SetObject
我正在考虑将项目移动到 WinForm 应用程序中的嵌入式 WebView 类型体系结构中,并且正在考虑 DotNetBrowser 和 CefSharp。 经过多次搜索,我似乎找不到免费 CefSh
我尝试使用 DotNetBrowser 打开带有 Silverlight 的网站并收到我需要安装 Silverlight 的警告。但是,在 DotNetBrowser 网站上提到支持 Silverli
所以基本上我将 dotNetBrowser 用于我正在加载到主窗体面板中的项目,并且我在用户控件中有一个用于用户输入的按钮,因此它可以与浏览器交互。这是我拥有的: public partial cla
我目前正在使用 DotNetBrowser 库开发 Wpf 应用程序。 所以目标是信息亭软件。 我必须使用 BrowserType.HEAVYWEIGHT 类型,因为我们加载了控件的 webapp 只
我想在WinForm(c#)中开发一个带有Web Workers(Dedicated Worker)的定制浏览器,DotNetBrowser支持Web Workers吗?或者还有其他建议吗? 最佳答案
最近我购买了 DotNetBrowser 的许可证,但是当我替换我的项目的文件 teamdev.licenses 时,在运行应用程序时,表格给我一个错误:无法找到有效的 DotNetBrowser 许
我们正在尝试调试 DotNetBrowser 无法在 Windows 10 Pro 64 位计算机(恰好在新的 AMD Ryzen 7 CPU 上运行)上创建的问题。我们启用了 DotNetBrows
我在我的 WPF 应用程序中使用 DotNetBrowser,但我遇到了问题js $(document).ready(function(){ $.getJSON("data.json").succ
我已经浏览了 dotnetbrowser 网站上的文档...虽然我看到了一个示例,该示例显示了如何交叉 Ajax 调用或过滤 Ajax 调用...我想知道是否有可能在执行后获得 Ajax 请求正文响应
我正在尝试通过 XMlHTTPRequest 响应正文返回 JSON 字符串。问题是在方法创建和 AjaxResourceHandler 实例之后,它将继续执行 Get 方法,然后再获取返回空字符串的
我需要编写函数来获取窗口中的真实顶部和左侧元素。 在 DotNetBrowser 中,我们可以获取坐标: int Y = el.BoundingClientRect.Origin.Y; int X =
我正在查看示例,但尚未遇到加载其中包含嵌入式 JavaScript 的本地 HTML 文件的示例。类似于主index.html 页面上该项目的其他几个内容。 src="angular.js" 我确信一
我看到了可以在 .NET 中启动函数调用并返回值的选项,但我没有看到可以在 javascript 中启动函数调用(调用 .NET 函数)然后返回值的选项值传递给 javascript,类似于我使用 A
我使用 DotNetBrowserControl 设置了一个 Winform 应用程序(将来会是 WPF) BrowserView browserView = new WinFormsBrow
我是一名优秀的程序员,十分优秀!