【问题标题】:How to scroll Firefox and IE in WatiN?如何在 WatiN 中滚动 Firefox 和 IE?
【发布时间】:2011-05-24 11:37:42
【问题描述】:

如何在 WatiN 中滚动 Firefox 和 IE?

【问题讨论】:

  • 关注首屏下方的元素?
  • 没有。我需要以像素为单位的位置。也许有人知道如何获取 DOM 元素的位置?

标签: .net watin


【解决方案1】:

您可以使用以下代码为任何给定元素调用 Internet Explorer 或 FireFox 的“scrollIntoView”方法:

对于 Internet Explorer:

using (var browser = new IE("http://www.google.com"))
{
    var textField = browser.TextField(Find.ByName("q"));
    var nativeElement = textField.NativeElement as IEElement;
    nativeElement.AsHtmlElement.scrollIntoView();
}

对于火狐:

using (var browser = new IE("http://www.google.com"))
{
    var textField = browser.TextField(Find.ByName("q"));
    var nativeElement = textField.NativeElement as JSElement;
    nativeElement.ExecuteMethod("scrollIntoView");
}

同样,如果你想要元素的位置,你可以使用相同的代码,但不是调用scrollIntoView(),你可以调用offsetLeft()和offsetTop()来获取位置。

using (var browser = new IE("http://www.google.com"))
{
    var textField = browser.TextField(Find.ByName("q"))
    var nativeElement = textField.NativeElement as IEElement;

    int leftoffset = nativeElement.AsHtmlElement.offsetLeft();
    int topoffset = nativeElement.AsHtmlelement.offsetTop();
}

【讨论】:

  • 这仅适用于 IE。使用 Firefox “var nativeElement = textField.NativeElement as IEElement”返回 null。拜托,我需要 Firefox 的例子。
  • 我更新了示例以包含自动滚动到元素的 FireFox 版本。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-01-22
  • 1970-01-01
  • 1970-01-01
  • 2011-08-09
  • 2015-05-06
  • 1970-01-01
  • 2017-01-22
相关资源
最近更新 更多