整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

软件测试-如何使用selenium操作窗口滚动条

我们在进行自动化测试工作的时候,如果页面内容过多,一次性加载耗时太长的话,会使用分段加载来加载页面内容,比如开始只加载页面顶端的内容,而如果要加载更多的数据,就需要我们向下滑动,让页面加载后续的内容;尤其是网页特别长的时候,我们往往需要滑动较长的距离才可以滑动到页面的底端,本文就来介绍一下selenium操作窗口滚动条的方法。

操作步骤

  1. 环境准备

我们首先要准备好selenium环境和浏览器驱动,下载好chromedriver或者geckodriver并配置好浏览器驱动的环境变量,这里我们不做赘述,selenium环境配置的文章之前我们已经有介绍过如何配置环境了。

  1. 创建Selenium WebDriver实例对象

在使用Selenium之前,我们需要创建一个WebDriver实例,这个实例会充当浏览器的代理,踢我们执行各种操作。以下是一个创建Chrome WebDriver实例的示例:

python

复制代码

from selenium import webdriver # 创建一个Chrome WebDriver实例 driver = webdriver.Chrome()

  1. 访问目标网页

使用WebDriver,我们可以访问需要滚动的目标网页。这可以通过get方法来完成:

python

复制代码

# 导航到目标网页 driver.get("https://example.com")

  1. 滚动页面

我们有多种方法可以实现页面滚动,下面我们来逐一介绍滚动方法:

  • 滚动到特定元素

可以滚动到特定元素,确保它在可见区域内。以下是一个示例代码,滚动到页面底部的某个元素:

python

复制代码

# 定位到要滚动到的元素 element_to_scroll_to = driver.find_element(By.ID, "element_id") # 使用JavaScript滚动到元素位置 driver.execute_script("arguments[0].scrollIntoView();", element_to_scroll_to)

  • 滚动到页面的底部

如果我们只是想滚动到页面的底部,可以使用以下示例代码:

python

复制代码

# 使用JavaScript滚动到页面底部 driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")

  • 滚动特定坐标

滚动到页面上的特定坐标位置。以下是示例代码,滚动到水平坐标0和垂直坐标500的位置:

python

复制代码

# 使用JavaScript滚动到特定坐标 driver.execute_script("window.scrollTo(0, 500);")

总结

本文主要介绍了使用selenium实现页面滚动的方法步骤,现在页面的内容越来越多,经常需要我们实现页面滚动才可以更好地运行我们地测试用例,希望本文能够帮助到大家。


霍格沃兹测试开发学社|免费学习资料大放送,助你事半功倍! - 公众号 - 测试人社区

本文中,我们将深入了解滚动条的世界。我知道,这听起来不太迷人,但相信我,精心设计的页面与匹配的滚动条齐头并进。老式的镀铬滚动条只是不适合那么多。

我们将研究滚动条的细节,然后看看一些很酷的例子。

滚动条的组成部分


要设置滚动条的样式,您需要熟悉滚动条的解剖结构。请看这张图:

这里要记住的两个主要组成部分是:

  1. scrollbar track是滚动条下方的背景。
  2. scrollbar humb是用户单击和拖动的部分。

我们可以使用供应商前缀::-webkit-scrollbar 选择器更改完整滚动条的属性。我们可以给滚动条一个固定的宽度、背景颜色、圆角......很多事情!如果我们自定义页面的主滚动条,那么我们可以直接在 HTML 元素上使用 ::-webkit-scrollbar:

html::-webkit-scrollbar {
  /* Style away! */
}

如果我们自定义一个滚动框,这是溢出的结果:滚动,那么我们可以在该元素上使用 ::-webkit-scrollbar:

.element::-webkit-scrollbar {
  /* Style away! */
}

下面是一个快速示例,它设置 HTML 元素滚动条的样式,使其宽,背景为红色:

如果我们只想更改滚动条的thumb或track怎么办?你猜对了——我们分别为这两个元素提供了特殊的前缀伪元素:::-webkit-scrollbar-thumb 和 ::-webkit-scrollbar-track。以下是我们将所有这些东西放在一起时可能实现的想法:

向您展示三个度的自定义滚动条样式,然后打开一个从网络上提取示例的大型展示,以获取灵感。

简单而优雅的滚动条

自定义滚动条仍然可以是最小的。我整理了一组示例,这些示例巧妙地改变了外观,无论是对拇指或轨道进行轻微的颜色更改,还是对背景进行一些浅色造型。

如您所见,在滚动条样式方面,我们不必发疯。有时,只需进行细微的更改即可通过与整体主题匹配的滚动条来增强整体用户体验.

html::-webkit-scrollbar{
  width: 50px;
  background:red;
}

如果我们只想更改滚动条的拇指或轨道怎么办?你猜对了——我们分别为这两个元素提供了特殊的前缀伪元素:::-webkit-scrollbar-thumb 和 ::-webkit-scrollbar-track。以下是我们将所有这些东西放在一起时可能实现的想法:

html::-webkit-scrollbar {
  width: 30px;
}
 
html::-webkit-scrollbar-track {
  background: black;
  box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
}
 
html::-webkit-scrollbar-thumb {
  background: red;
  border: 3px solid blue;
}

向您展示三个度的自定义滚动条样式,然后打开一个从网络上提取示例的大型展示,以获取灵感。

简单而优雅的滚动条

自定义滚动条仍然可以是最小的。我整理了一组示例,这些示例巧妙地改变了外观,无论是对拇指或轨道进行轻微的颜色更改,还是对背景进行一些浅色造型。

.container {
            display: flex;
            margin: 50px;
            column-gap: 20px;
        }
        
        .scrollbar {
            height: 300px;
            width: 50%;
            overflow: auto;
            padding: 0 10px;
        }
        /*       ScrollBar 1        */
        
        #scrollbar1::-webkit-scrollbar {
            width: 10px;
        }
        
        #scrollbar1::-webkit-scrollbar-track {
            border-radius: 8px;
            background-color: #e7e7e7;
            border: 1px solid #cacaca;
        }
        
        #scrollbar1::-webkit-scrollbar-thumb {
            border-radius: 8px;
            background-color: #d55959;
        }
        /*       ScrollBar 2        */
        
        #scrollbar2::-webkit-scrollbar {
            width: 12px;
        }
        
        #scrollbar2::-webkit-scrollbar-track {
            border-radius: 8px;
            background-color: #e7e7e7;
            border: 1px solid #cacaca;
            box-shadow: inset 0 0 6px rgba(0, 0, 0, .3);
        }
        
        #scrollbar2::-webkit-scrollbar-thumb {
            border-radius: 8px;
            background-color: #363636;
        }
        /*        ScrollBar 3    */
        
        #scrollbar3::-webkit-scrollbar {
            width: 12px;
        }
        
        #scrollbar3::-webkit-scrollbar-track {
            background-color: #e7e7e7;
            border: 1px solid #cacaca;
        }
        
        #scrollbar3::-webkit-scrollbar-thumb {
            background-color: #060b9a;
        }
        /*        ScrollBar 4    */
        
        #scrollbar4::-webkit-scrollbar {
            width: 12px;
        }
        
        #scrollbar4::-webkit-scrollbar-track {
            background-color: transparent;
            border: 1.5px solid #7e7e7e;
            border-radius: 8px;
        }
        
        #scrollbar4::-webkit-scrollbar-thumb {
            background-color: #f1f1f1;
            border: 2px solid #616161;
            border-radius: 8px;
        }
        /*        ScrollBar 5    */
        
        #scrollbar5::-webkit-scrollbar {
            background-color: #000;
            width: 12px;
            border-radius: 10px;
        }
        
        #scrollbar5::-webkit-scrollbar-track {
            border-radius: 10px;
            box-shadow: inset 0 0 6px rgba(255, 255, 255, 0.3);
        }
        
        #scrollbar5::-webkit-scrollbar-thumb {
            background-image: -webkit-gradient(linear, left bottom, left top, color-stop(.5, #a520ca), color-stop(1, #2681cc));
            border-radius: 10px;
        }
        /*       ScrollBar 6        */
        
        #scrollbar6::-webkit-scrollbar {
            width: 12px;
        }
        
        #scrollbar6::-webkit-scrollbar-track {
            border-radius: 8px;
            background-color: #95a5a6;
            border: 1px solid #cacaca;
        }
        
        #scrollbar6::-webkit-scrollbar-thumb {
            border-radius: 8px;
            background-color: #2c3e50;
        }

如您所见,在滚动条样式方面,我们不必发疯。有时,只需进行细微的更改即可通过与整体主题匹配的滚动条来增强整体用户体验。

avaScript

在我们制作html网页的时候,有时候需要某个元素(比如说div)的滚动条一直在最下方,那么我们该怎么做呢?

先上代码:

window.onload = SetScroll;// 不要括号

function SetScroll(){

//读取需要设定的元素高度

var height=$("#showwindows")[0].scrollHeight;

//设置元素的滚动条位置在高度数据地方就是最下方

$("#showwindows").scrollTop(height);

}

程序执行流程如下:

1、页面加载时自动调用JavaScript中的SetScroll方法;

2、设置height为需要设置滚动条元素的高度;

3、设置元素的滚动条位置为元素高度,就是元素的最下方位置。