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

相关文章

通过React实现页面的无限滚动效果

《通过React实现页面的无限滚动效果》今天我们来聊聊无限滚动这个现代Web开发中不可或缺的技术,无论你是刷微博、逛知乎还是看脚本,无限滚动都已经渗透到我们日常的浏览体验中,那么,如何优雅地实现它呢?... 目录1. 早期的解决方案2. 交叉观察者:IntersectionObserver2.1 Inter

5 种使用Python自动化处理PDF的实用方法介绍

《5种使用Python自动化处理PDF的实用方法介绍》自动化处理PDF文件已成为减少重复工作、提升工作效率的重要手段,本文将介绍五种实用方法,从内置工具到专业库,帮助你在Python中实现PDF任务... 目录使用内置库(os、subprocess)调用外部工具使用 PyPDF2 进行基本 PDF 操作使用

C#自动化实现检测并删除PDF文件中的空白页面

《C#自动化实现检测并删除PDF文件中的空白页面》PDF文档在日常工作和生活中扮演着重要的角色,本文将深入探讨如何使用C#编程语言,结合强大的PDF处理库,自动化地检测并删除PDF文件中的空白页面,感... 目录理解PDF空白页的定义与挑战引入Spire.PDF for .NET库核心实现:检测并删除空白页

Python实现自动化删除Word文档超链接的实用技巧

《Python实现自动化删除Word文档超链接的实用技巧》在日常工作中,我们经常需要处理各种Word文档,本文将深入探讨如何利用Python,特别是借助一个功能强大的库,高效移除Word文档中的超链接... 目录为什么需要移除Word文档超链接准备工作:环境搭建与库安装核心实现:使用python移除超链接的

使用Python实现Word文档的自动化对比方案

《使用Python实现Word文档的自动化对比方案》我们经常需要比较两个Word文档的版本差异,无论是合同修订、论文修改还是代码文档更新,人工比对不仅效率低下,还容易遗漏关键改动,下面通过一个实际案例... 目录引言一、使用python-docx库解析文档结构二、使用difflib进行差异比对三、高级对比方

从入门到精通详解Python虚拟环境完全指南

《从入门到精通详解Python虚拟环境完全指南》Python虚拟环境是一个独立的Python运行环境,它允许你为不同的项目创建隔离的Python环境,下面小编就来和大家详细介绍一下吧... 目录什么是python虚拟环境一、使用venv创建和管理虚拟环境1.1 创建虚拟环境1.2 激活虚拟环境1.3 验证虚

Python自动化处理PDF文档的操作完整指南

《Python自动化处理PDF文档的操作完整指南》在办公自动化中,PDF文档处理是一项常见需求,本文将介绍如何使用Python实现PDF文档的自动化处理,感兴趣的小伙伴可以跟随小编一起学习一下... 目录使用pymupdf读写PDF文件基本概念安装pymupdf提取文本内容提取图像添加水印使用pdfplum

基于Python实现自动化邮件发送系统的完整指南

《基于Python实现自动化邮件发送系统的完整指南》在现代软件开发和自动化流程中,邮件通知是一个常见且实用的功能,无论是用于发送报告、告警信息还是用户提醒,通过Python实现自动化的邮件发送功能都能... 目录一、前言:二、项目概述三、配置文件 `.env` 解析四、代码结构解析1. 导入模块2. 加载环

Python实战之SEO优化自动化工具开发指南

《Python实战之SEO优化自动化工具开发指南》在数字化营销时代,搜索引擎优化(SEO)已成为网站获取流量的重要手段,本文将带您使用Python开发一套完整的SEO自动化工具,需要的可以了解下... 目录前言项目概述技术栈选择核心模块实现1. 关键词研究模块2. 网站技术seo检测模块3. 内容优化分析模

Java List 使用举例(从入门到精通)

《JavaList使用举例(从入门到精通)》本文系统讲解JavaList,涵盖基础概念、核心特性、常用实现(如ArrayList、LinkedList)及性能对比,介绍创建、操作、遍历方法,结合实... 目录一、List 基础概念1.1 什么是 List?1.2 List 的核心特性1.3 List 家族成