首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

python自动化之JS处理滚动条

滚动条操作 浏览器滚动条并没有提供相应的操作方法。在这种情况下,就可以借助JavaScript也就是JS来控制浏览器的滚动条。 WebDriver提供了execute_script()方法来执行JavaScript代码。 js="window.scrollTo(100,450);" driver.execute_script(js) 当页面上的元素超过一屏后,想操作屏幕下方的元素,是不能直接定位到,会报元素不可见的。 这时候需要借助滚动条来拖动屏幕,使被操作的元素显示在当前的屏幕上。 滚动条是无法直接用定位工具来定位的。selenium里面也没有直接的方法去控制滚动条,这时候只能借助JS了,还好selenium提供了一个操作js的方法: execute_script(),可以直接执行js的脚本。 --scrollHeight 获取对象的滚动高度。 --scrollLeft 设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离。 --scrollTop 设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离。 --scrollWidth 获取对象的滚动宽度。

02
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    初学web自动化测试--笔记1

    web driver 是可以直接操作浏览器的driver, 根据不同的浏览器,需要不同的driver,下面列出了一些可用的web driver的镜像地址: chrom浏览器的web driver(chromedriver.exe):http://npm.taobao.org/mirrors/chromedriver/ firefox(火狐浏览器)的web driver (geckodriver.exe):https://github.com/mozilla/geckodriver/releases IE(IEDriverServer_Win32_3.9.0.zip 是32位的3.9.0 driver): http://selenium-release.storage.googleapis.com/index.html web自动化测试中,可以通过webdriver的API,向浏览器发送相应的request, 然后实现自动测试,比如自动点击,自动填写,自动滚动,自动切换窗口/标签页等。 但是如上所述,不同的浏览器有不同的web driver. 那么自然也就有不同的API提供,所以对于同一个功能,那么就需要基于不同的driver,学习不同的API,这操作起来,岂不是头疼? 在python中,我们只需要按照如下导入webdriver, 就可以轻松用一种方式来应付各种不同的web driver了:

    04

    Jurassic.ScriptEngine 简易示例

    零、准备 1. 到官网(http://jurassic.codeplex.com/releases)下载最新版本的Jurassic.ScriptEngine Dll。 2. 确保项目是4.0框架及以上,引入dll。 3. 添加"using Jurassic;"语句。 一、宿主调用脚本 0. 最开始要创建一个脚本对象 ScriptEngine sc = new ScriptEngine(); 1. 下面的例子演示了如何计算表达式: int i = sc.Evaluate<int>("1 + 1"); Console.WriteLine(i); 结果为: 2 2. 下面的例子演示了如何获取脚本中的全局对象: 对于没有返回值或者舍弃返回值的语句,可以用Execute方法执行 sc.Execute("var i = 1;"); int i = sc.GetGlobalValue<int>("i"); Console.WriteLine(i); 当然也可以这样执行 sc.Execute("var i = 1;"); int i = sc.Evaluate<int>("i"); Console.WriteLine(i); 结果为: 1 3. 下面的例子演示了如何调用脚本中的函数 sc.Execute("function add(a,b){return a+b;}"); int i = sc.Evaluate<int>("add(1,2);"); Console.WriteLine(i); 结果为: 3 4. 调用函数时动态传入参数 add函数同上 int i = sc.CallGlobalFunction<int>("add", 1, 2); Console.WriteLine(i); 结果为: 3 二、脚本调用宿主 1. 调用宿主的方法 sc.SetGlobalFunction("ConsoleWriteln", new Action<string>(Console.WriteLine)); sc.Execute("ConsoleWriteln('hello');"); 结果为: hello 2. 调用宿主的对象 ConsoleWriteln同上 sc.SetGlobalValue("hello", "hello"); sc.Execute("ConsoleWriteln(hello);"); 结果为: hello 要注意delegate不能转换为js的function对象 所以两个函数不能写错 如果要传入js基本类型之外的对象 请开启"sc.EnableExposedClrTypes = true;"

    04

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券