当前位置: 首页 > wzjs >正文

做愛的视频网站seo全国最好的公司

做愛的视频网站,seo全国最好的公司,网站添加新闻,时时彩网站做制作文章目录 C#自动化测试滚动条操作语法与实战总结一、基础操作语法速查1. 滚动控制核心方法2. 滚动条位置获取 二、核心方法对比表三、实战场景代码模板场景1:动态加载页面分步滚动场景2:元素可见性验证(显式等待)场景3&#xff1a…

文章目录

  • C#自动化测试滚动条操作语法与实战总结
    • 一、基础操作语法速查
      • 1. 滚动控制核心方法
      • 2. 滚动条位置获取
    • 二、核心方法对比表
    • 三、实战场景代码模板
      • 场景1:动态加载页面分步滚动
      • 场景2:元素可见性验证(显式等待)
      • 场景3:避开固定导航栏遮挡
    • 四、兼容性与最佳实践
      • 1. 万能兼容写法(解决不同浏览器差异)
      • 2. 性能优化技巧
    • 五、快速记忆口诀

C#自动化测试滚动条操作语法与实战总结

一、基础操作语法速查

1. 滚动控制核心方法

// 滚动到页面底部(常用)
IJavaScriptExecutor js = (IJavaScriptExecutor)driver;
js.ExecuteScript("window.scrollTo(0, document.body.scrollHeight);");// 滚动到指定坐标(X=0,Y=1000像素)
js.ExecuteScript("window.scrollTo(0, 1000);");// 相对当前位置滚动(向下500像素)
js.ExecuteScript("window.scrollBy(0, 500);");// 滚动到元素可见区域(自动定位目标元素)
IWebElement targetElement = driver.FindElement(By.Id("target"));
js.ExecuteScript("arguments[0].scrollIntoView();", targetElement);

2. 滚动条位置获取

//获取滚动条高度
var h1 = js.ExecuteScript("let ss = document.documentElement.scrollTop; return ss;");//512
var h2 = js.ExecuteScript("let ss = window.scrollY; return ss;");
var h3 = js.ExecuteScript("let ss = window.pageYOffset; return ss;");// 获取垂直滚动距离(3种兼容写法)
int scrollY1 = (int)js.ExecuteScript("return window.scrollY;");          // 现代浏览器
int scrollY2 = (int)js.ExecuteScript("return window.pageYOffset;");      // 等同于scrollY
int scrollY3 = (int)js.ExecuteScript("return document.documentElement.scrollTop;"); // 标准模式// 获取文档总高度(兼容不同浏览器)
int totalHeight = (int)js.ExecuteScript(@"return Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);
");

二、核心方法对比表

方法名称作用描述典型用法示例兼容性说明
scrollTo(x, y)绝对定位滚动(X/Y坐标)js.ExecuteScript("window.scrollTo(0, 500);")所有浏览器
scrollBy(dx, dy)相对当前位置滚动(偏移量)js.ExecuteScript("window.scrollBy(0, -100);")所有浏览器
scrollIntoView()滚动到元素可见区域(居中/顶部/底部)js.ExecuteScript("arguments[0].scrollIntoView(true);", element)现代浏览器(IE9+)
document.body.scrollHeight文档总高度(内容高度)js.ExecuteScript("return document.body.scrollHeight;")需结合documentElement兼容

三、实战场景代码模板

场景1:动态加载页面分步滚动

// 每次滚动1/2视口高度,触发无限滚动(最多10次)
for (int i = 0; i < 10; i++) {// 获取当前视口高度int viewportHeight = (int)js.ExecuteScript("return window.innerHeight;");js.ExecuteScript($"window.scrollBy(0, {viewportHeight / 2});"); // 滚动半屏Thread.Sleep(800); // 等待异步加载(根据实际情况调整)
}

场景2:元素可见性验证(显式等待)

using OpenQA.Selenium.Support.UI;// 等待元素完全可见(自定义条件)
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
wait.Until(d => {IWebElement element = d.FindElement(By.Id("hidden-element"));// 获取元素在视口内的位置var rect = (Dictionary<string, object>)js.ExecuteScript(@"var el = arguments[0], rect = el.getBoundingClientRect();return { top: rect.top, bottom: rect.bottom };", element);// 元素顶部≥0且底部≤视口高度则为可见return (double)rect["top"] >= 0 && (double)rect["bottom"] <= d.Manage().Window.Size.Height;
});

场景3:避开固定导航栏遮挡

// 滚动时预留100px安全距离(适用于顶部固定导航栏)
js.ExecuteScript(@"var el = arguments[0], rect = el.getBoundingClientRect();window.scrollTo(0, rect.top - 100); // 向上调整100px
", targetElement);

四、兼容性与最佳实践

1. 万能兼容写法(解决不同浏览器差异)

// 兼容所有浏览器的滚动位置获取
int scrollTop = (int)js.ExecuteScript(@"return window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;
");// 文档总高度安全计算(处理DOCTYPE差异)
int fullHeight = (int)js.ExecuteScript(@"return Math.max(document.body.scrollHeight, document.documentElement.scrollHeight, document.body.offsetHeight, document.documentElement.offsetHeight);
");

2. 性能优化技巧

  • 合并JS执行:将多个滚动相关操作写入同一个脚本(减少通信开销)
    js.ExecuteScript(@"window.scrollTo(0, 500); var height = document.body.scrollHeight; return height;
    ");
    
  • 使用相对滚动:优先scrollBy()处理连续滚动场景,避免重复计算绝对坐标
  • 显式等待替代Sleep:使用WebDriverWait动态等待,避免固定延迟影响效率

五、快速记忆口诀

  • 滚动到底用scrollTo(0, bodyHeight)
  • 元素定位找scrollIntoView()
  • 相对滚动选scrollBy(dx, dy)
  • 高度获取记兼容(pageYOffset/scrollTop/scrollY

通过以上代码模板和场景示例,可快速掌握C#自动化测试中滚动条操作的核心语法,适用于WebUI测试中的动态内容处理、元素可见性验证等常见场景。

http://www.dtcms.com/wzjs/234487.html

相关文章:

  • 公司网站建设推荐q479185700顶上网络营销推广专员
  • wordpress主题seo青岛百度seo排名
  • 企业网站的功能西安做推广优化的公司
  • 响应式网站要怎么做杭州正规引流推广公司
  • 织梦做的网站在百度搜索页劫取seo培训一对一
  • 做网站开发功能清单全网品牌推广
  • 深圳建设管理中心网站广告软文范例
  • 哪个网站可以做印章图案国内新闻
  • 做平面的网站seo搜索优化招聘
  • 贵港北京网站建设营销软件有哪些
  • 郑州小程序开发制作公司攀枝花seo
  • wordpress主题:精选zruckmetro主题英语seo
  • 网站做选择题怎么快速选择百度权重排名查询
  • dw代码做网站网络营销系统
  • 政府网站建设的问题及对策网络营销的10个特点
  • 安顺市建设局网站用今日头条导入自己网站外链
  • java做后端的网站宁波seo排名优化培训
  • wordpress简约商城广告优化师前景怎样
  • 福州电子网站建设百度图片搜索引擎入口
  • 网站开发平台开发最火的网络销售平台
  • 保定建设银行网站首页黄冈网站推广软件
  • 苏州化妆品网站建设平台宣传推广方案
  • 安全生产规章制度建筑公司网站seo关键词是怎么优化的
  • 做网站分为竞价和优化建站企业网站
  • 河南企起网站建设软文营销的写作技巧有哪些
  • 网站建设费入什么科目百度搜索引擎的网址是
  • 河南网站seo营销多少费用郑州网站运营实力乐云seo
  • 咸阳做网站公司电话百度指数网页版
  • 做的好的排版网站景区营销案例100例
  • 公司网站建设后期维护发布平台有哪些