selenium+java 关于图形化滑块的处理(1)

新人新手,初次接触selenium+Java自动化测试,试着分享点学习中的东西。

在做自动化的时候,有时会遇见图形化校验的问题,特别是现在大部分网站都加上了滑块校验,今天分享一下最简单的滑块校验的处理;

这个滑块的处理步骤:

1.先定位和滑块控件的元素;

2.获得滑块滑动的距离,也就是滑块目的地的坐标;

3.拖动滑块。

1.定位滑块控件,如下图

定位外面的控件也行,定位里面小的那个也行

//外
WebElement sour = driver.findElement(By.cssSelector(".cpt-img-double-right"));

//内
WebElement sour = driver.findElement(By.cssSelector(".cpt-drop-btn"));

2.获得滑块滑动的距离,也就是滑块目的地的坐标,如下图

滑块的运动就是从A点走到B点或C点的位置,需要把B或C的坐标,得到即可,

以A点为原点,水平距离为X,垂直距离为Y

1 //整个拖拽框的控件元素
2     WebElement ele = driver.findElement(By.cssSelector(".cpt-bg-bar"));
3 //拖拽的宽度即x的距离
4     int x = ele.getSize().getWidth();
5 //拖拽的高度即y的距离
6     int y = ele.getSize().getHeight();
7             

3.拖动滑块

1 //拖拽的动作
2     Actions action = new Actions(driver);
3     action.dragAndDropBy(sour, x, y).perform();

附上完整代码

 1 package se_2019;
 2
 3 import org.openqa.selenium.By;
 4 import org.openqa.selenium.WebDriver;
 5 import org.openqa.selenium.WebElement;
 6 import org.openqa.selenium.firefox.FirefoxDriver;
 7 import org.openqa.selenium.interactions.Actions;
 8 public class lianxi_191001 {
 9
10     public static void main(String[] args) throws InterruptedException {
11         //建立驱动
12             System.setProperty("webdriver.gecko.driver", "C:\\Program Files\\Mozilla Firefox\\geckodriver.exe");
13             WebDriver driver = new FirefoxDriver();
14         //输入网址
15             driver.get("https://passport.ctrip.com/user/login");
16         //输入账号密码并点击登录
17             driver.findElement(By.id("nloginname")).sendKeys("18519523213");
18             driver.findElement(By.id("npwd")).sendKeys("1");
19             driver.findElement(By.id("nsubmit")).click();
20             Thread.sleep(3000);
21         //滑块控件元素
22             //WebElement sour = driver.findElement(By.cssSelector(".cpt-img-double-right"));
23             WebElement sour = driver.findElement(By.cssSelector(".cpt-drop-btn"));
24         //整个拖拽框的控件元素
25             WebElement ele = driver.findElement(By.cssSelector(".cpt-bg-bar"));
26         //拖拽的宽度即x的距离
27             int x = ele.getSize().getWidth();
28             System.out.println(ele.getSize().getWidth());
29         //拖拽的高度即y的距离
30             int y = ele.getSize().getHeight();
31             System.out.println(ele.getSize().getHeight());
32             Thread.sleep(3000);
33         //拖拽的动作
34             Actions action = new Actions(driver);
35             action.dragAndDropBy(sour, x, y).perform();
36             Thread.sleep(2000);
37         //关闭窗口
38             driver.close();
39
40     }
41
42 }

原文地址:https://www.cnblogs.com/zctyk/p/11615646.html

时间: 2024-08-29 22:26:25

selenium+java 关于图形化滑块的处理(1)的相关文章

java之图形化界面(GUI)

一.概述 用户与计算机进行交换的方式有两种: GLI:Command lin User Interface(命令行用户接口),也就是常见的dos窗口,它需要记住一些常用的命令,操作不直观方便. GUI:Graphical User Interface(图形用户接口),用图形的方式,来显示计算机操作的界面,这样更方便直观. 这两种交换方式就对应两种交互界面:命令行界面和图形化界面. 现在图形化界面是主流. Java为GUI提供的对象都在java.awt和javax.swing这两个包中. Awt和

java Swing图形化界面

学过java的人应该对java的图形化界面很是反感,特别是接触java不久的人.如果想和其他语言那样用鼠标拖拽,可以使用wondosbulider插件.但是用起来也不是那么方便.当然对于不乐意写代码的人来说真是太幸福了. 然而用代码去实现java的图形化界面并非那么麻烦.总结起来就是~ 1.定义你需要使用的面板,按钮,文本,标签. 2.对这些实例化.  然后把按钮,文本,标签按照你想要的方法放到面板上. 3.把面板放在界面上.  如果界面简单的话,面板也是可以不使用的,面板可以方便管理一些按钮.

java图形化编程

转载 学习Java Swing图形化编程,我们首先要了解三个最基本的概念:顶层容器,控件,布局. 下面就来介绍一下这三个基本概念 1.顶层容器 什么是顶层容器?当我们使用Java进行图形编程的时候,图在哪里绘制呢?我们需要一个能够提供图形绘制的容器,这个容器就被称为顶层容器,你也可以把它想象成一个窗口.顶层容器是进行图形编程的基础,一切图形化的东西,都必然包括在顶层容器中.在Swing中,我们有三种可以使用的顶层容器,它们分别是: ·JFrame:用来设计类似于Windows系统中的窗口形式的应

java工程开发之图形化界面之(第三课)

上面我们讲述了通过JOptionPane进行文本I/O操作,一个是通过JOptionPane来获取的 参考链接:http://blog.sina.com.cn/s/blog_993d254201013pgh.html#cmt_3339216 JOptionPane类 1.属于javax.swing 包. 2.功能:定制四种不同种类的标准对话框. ConfirmDialog 确认对话框.提出问题,然后由用户自己来确认(按"Yes"或"No"按钮) InputDialo

java图形界面之图形化按钮

要将按钮图形化,只需创建一个ImageIcon对象,将图形路径赋予ImageIcon对象,然后将该对象传递给按钮即可. 此处涉及eclipse中图形的路径设置,包括(项目路径下.非项目路径下.相对路径.绝对路径),相对路径前不加/,此处相对路径是相对于eclipse中项目文件夹而言的,绝对路径为图形所在未知的具体路径.以picture1.jpg(在H:/java/workspace/study/src/picture路径下)为例: 1.若将picture文件夹置于study/src路径(非项目路

基于Java Web的图形化电网线损计算

引言 在各种电力系统应用软件中, 电力图形化表达的重要组成部分.鉴于目前各种电力系统大多数为B/S结构, 而基于浏览器的矢量图编辑和展示技术已成为当下的热门课题.电力系统的发展迫切需要推出一种图形标准来避免重复的劳动和不同厂商图形格式之间的不兼容. 文献中阐述了多比图形控件在电力系统软件领域的应用及其关键问题,并且指出多比图形控件可以提升基于 Web的电力系统软件图形化的特性,不过对于基于多比图形控件的图形系统如何构建以及如何有效的将多比图形控件应用到电力系统软件中在文中并没有深入探讨.本文将集

Java图形化界面设计——容器(JFrame)

Java图形化界面设计——容器(JFrame) 程序是为了方便用户使用的,因此实现图形化界面的程序编写是所有编程语言发展的必然趋势,在命令提示符下运行的程序可以让我们了解java程序的基本知识体系结构,现在就进入java图形化界面编程. 一.Java基本类(JFC) Java基本类(“JavaFoundationClasses”,JFC),由一些软件包组成.这些软件包主要包括下面一些应用程序接口(API): ·抽象窗口工具集(AWT)(1.1及以上版本). ·Swing构件. ·Java 2D应

三十三、Java图形化界面设计——布局管理器之null布局(空布局)

摘自http://blog.csdn.net/liujun13579/article/details/7774267 三十三.Java图形化界面设计--布局管理器之null布局(空布局) 一般容器都有默认布局方式,但是有时候需要精确指定各个组建的大小和位置,就需要用到空布局. 操作方法: 1)       首先利用setLayout(null)语句将容器的布局设置为null布局(空布局). 2)       再调用组件的setBounds(int x, int y, int width,int

三十一、Java图形化界面设计——布局管理器之GridLayout(网格布局)

摘自http://blog.csdn.net/liujun13579/article/details/7772491 三十一.Java图形化界面设计--布局管理器之GridLayout(网格布局) 网格布局特点: l  使容器中的各组件呈M行×N列的网格状分布. l  网格每列宽度相同,等于容器的宽度除以网格的列数. l  网格每行高度相同,等于容器的高度除以网格的行数. l  各组件的排列方式为:从上到下,从左到右. l  组件放入容器的次序决定了它在容器中的位置. l  容器大小改变时,组件