WebDriver基本操作入门及UI自动化练手页面

2024-06-23 22:48

本文主要是介绍WebDriver基本操作入门及UI自动化练手页面,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里集中了我们在做UI自动化时常见的一些控件操作。希望能对新手有帮助。

下载地址:http://files.cnblogs.com/zhangfei/demo.rar

复制代码
package com.test;import java.util.List;
import java.util.Set;import org.openqa.selenium.Alert;
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.support.ui.ExpectedCondition;
import org.openqa.selenium.support.ui.Select;
import org.openqa.selenium.support.ui.WebDriverWait;public class Demo {public WebDriver driver;public Demo() {// ProfilesIni allProfiles = new ProfilesIni();// FirefoxProfile profile = allProfiles.getProfile("default");// driver = new FirefoxDriver(profile);driver = new FirefoxDriver();}public void testBaidu() {WebDriver driver = new FirefoxDriver();driver.navigate().to("http://www.baidu.com");driver.quit();}public void testGoTo(String url) {driver.navigate().to(url);driver.manage().window().maximize();}public void testQuit() {// driver.close();
        driver.quit();}public void testInput(String value) {WebElement element = driver.findElement(By.id("user"));element.sendKeys(value);element.clear();element.sendKeys(value);String text = element.getAttribute("value");System.out.println(text);}public void testLink() {WebElement element = driver.findElement(By.className("baidu"));String href = element.getAttribute("href");System.out.println(href);String text = element.getText();System.out.println(text);element.click();driver.navigate().back();}public void testSelect(String value) {WebElement element = driver.findElement(By.name("select"));Select select = new Select(element);select.selectByValue(value);String text = select.getFirstSelectedOption().getText();System.out.println(text);}public void testRadioBox(int index) {List<WebElement> elements = driver.findElements(By.name("identity"));elements.get(index).click();boolean select = elements.get(index).isSelected();System.out.println(select);}public void testCheckBox(int index) {List<WebElement> elements = driver.findElements(By.xpath("//div[@id='checkbox']/input"));WebElement element = elements.get(index);element.click();boolean check = element.isSelected();System.out.println(check);}public void testButton() {WebElement element = driver.findElement(By.className("button"));element.click();boolean button = element.isEnabled();System.out.println(button);}public void testAlert() {WebElement element = driver.findElement(By.className("alert"));Actions action = new Actions(driver);action.click(element).perform();Alert alert = driver.switchTo().alert();String text = alert.getText();System.out.println(text);alert.accept();}public void testUpload(String filePath) {WebElement element = driver.findElement(By.id("load"));        element.sendKeys(filePath);        }public void testJavaScript(){JavascriptExecutor j = (JavascriptExecutor)driver;j.executeScript("alert('hellow rold!')");Alert alert = driver.switchTo().alert();String text = alert.getText();System.out.println(text);alert.accept();}public void testMultiWindow() {WebElement element = driver.findElement(By.className("open"));element.click();Set<String> handles = driver.getWindowHandles();String handle = driver.getWindowHandle();handles.remove(driver.getWindowHandle());WebDriver d = driver.switchTo().window(handles.iterator().next());        d.close();    driver.switchTo().window(handle);}public void testAction() {WebElement element = driver.findElement(By.className("over"));Actions action = new Actions(driver);action.moveToElement(element).perform();String text = driver.findElement(By.id("over")).getText();System.out.println(text);}public void testWait() {WebElement element = driver.findElement(By.className("wait"));element.click();
//        driver.manage().timeouts().implicitlyWait(12, TimeUnit.SECONDS);boolean wait = new WebDriverWait(driver, 10).until(new ExpectedCondition<Boolean>() {public Boolean apply(WebDriver d) {return d.findElement(By.className("red")).isDisplayed();}});System.out.println(wait);System.out.println(driver.findElement(By.className("red")).getText());}public static void main(String[] args) {Demo d = new Demo();d.testGoTo("http://ip/demo.html");d.testInput("hello");d.testLink();d.testRadioBox(2);d.testSelect("opel");d.testCheckBox(2);d.testButton();d.testUpload("c:\\test.txt");d.testAlert();d.testAction();d.testJavaScript();d.testWait();d.testQuit();}}
复制代码

这篇关于WebDriver基本操作入门及UI自动化练手页面的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1088501

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

如何在页面调用utility bar并传递参数至lwc组件

1.在app的utility item中添加lwc组件: 2.调用utility bar api的方式有两种: 方法一,通过lwc调用: import {LightningElement,api ,wire } from 'lwc';import { publish, MessageContext } from 'lightning/messageService';import Ca

数论入门整理(updating)

一、gcd lcm 基础中的基础,一般用来处理计算第一步什么的,分数化简之类。 LL gcd(LL a, LL b) { return b ? gcd(b, a % b) : a; } <pre name="code" class="cpp">LL lcm(LL a, LL b){LL c = gcd(a, b);return a / c * b;} 例题:

Java 创建图形用户界面(GUI)入门指南(Swing库 JFrame 类)概述

概述 基本概念 Java Swing 的架构 Java Swing 是一个为 Java 设计的 GUI 工具包,是 JAVA 基础类的一部分,基于 Java AWT 构建,提供了一系列轻量级、可定制的图形用户界面(GUI)组件。 与 AWT 相比,Swing 提供了许多比 AWT 更好的屏幕显示元素,更加灵活和可定制,具有更好的跨平台性能。 组件和容器 Java Swing 提供了许多

【IPV6从入门到起飞】5-1 IPV6+Home Assistant(搭建基本环境)

【IPV6从入门到起飞】5-1 IPV6+Home Assistant #搭建基本环境 1 背景2 docker下载 hass3 创建容器4 浏览器访问 hass5 手机APP远程访问hass6 更多玩法 1 背景 既然电脑可以IPV6入站,手机流量可以访问IPV6网络的服务,为什么不在电脑搭建Home Assistant(hass),来控制你的设备呢?@智能家居 @万物互联

poj 2104 and hdu 2665 划分树模板入门题

题意: 给一个数组n(1e5)个数,给一个范围(fr, to, k),求这个范围中第k大的数。 解析: 划分树入门。 bing神的模板。 坑爹的地方是把-l 看成了-1........ 一直re。 代码: poj 2104: #include <iostream>#include <cstdio>#include <cstdlib>#include <al

MySQL-CRUD入门1

文章目录 认识配置文件client节点mysql节点mysqld节点 数据的添加(Create)添加一行数据添加多行数据两种添加数据的效率对比 数据的查询(Retrieve)全列查询指定列查询查询中带有表达式关于字面量关于as重命名 临时表引入distinct去重order by 排序关于NULL 认识配置文件 在我们的MySQL服务安装好了之后, 会有一个配置文件, 也就

【Linux 从基础到进阶】Ansible自动化运维工具使用

Ansible自动化运维工具使用 Ansible 是一款开源的自动化运维工具,采用无代理架构(agentless),基于 SSH 连接进行管理,具有简单易用、灵活强大、可扩展性高等特点。它广泛用于服务器管理、应用部署、配置管理等任务。本文将介绍 Ansible 的安装、基本使用方法及一些实际运维场景中的应用,旨在帮助运维人员快速上手并熟练运用 Ansible。 1. Ansible的核心概念

如何使用Ansible实现CI/CD流水线的自动化

如何使用Ansible实现CI/CD流水线的自动化 持续集成(CI)和持续交付(CD)是现代软件开发过程中的核心实践,它们帮助团队更快地交付高质量的软件。Ansible,作为一个强大的自动化工具,可以在CI/CD流水线中发挥关键作用。本文将详细介绍如何使用Ansible实现CI/CD流水线的自动化,包括设计流水线的结构、配置管理、自动化测试、部署、以及集成Ansible与CI/CD工具(如Jen