三天精通Selenium Web 自动化 - Selenium(Java)环境搭建 (new)

0 背景

  • 开发工具idea
  • 代码管理maven
  • jdk1.8
  • webdriver chrome

1 chromedriver & chrome

chromedriver和chrome要对应上:

  • chomedriver下载地址:淘宝镜像 这里用的是 chromedriver88-0-4324-96.zip
  • chrome下载地址:如何降级和安装旧版本的Chrome? 这里用的是 ChromeStandaloneSetup_88.0.4324.150.exe

2 jar包 & 代码

pom.xml

 View Code

code

复制代码

import org.openqa.selenium.*;
import org.openqa.selenium.chrome.ChromeDriver;
import java.time.Duration;
import java.util.Iterator;
import java.util.Set;public class SearchBaidu {public static void main(String[] args) throws InterruptedException {String chromedriver_win="D:\\Code\\seleniumDemo\\src\\main\\resources\\chromedriver.exe";System.setProperty("webdriver.chrome.driver", chromedriver_win);WebDriver webDriver=  new ChromeDriver();MutiWindowTest(webDriver);Thread.sleep(2000);webDriver.get("https://www.baidu.com");webDriver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));Dimension d =new Dimension(800,600);webDriver.manage().window().setSize(d);Thread.sleep(2000);Point p=new Point(500,300);webDriver.manage().window().setPosition(p);Thread.sleep(2000);webDriver.manage().window().fullscreen();Thread.sleep(3000);webDriver.manage().window().maximize();WebElement searchInput=webDriver.findElement(By.id("kw"));//定位到文本,将文本高亮显示//创建一个JavascriptExecutor对象JavascriptExecutor js =(JavascriptExecutor)webDriver;//新闻文本高亮显示颜色js.executeScript ( "arguments[0].setAttribute('style', arguments[1]);",searchInput,"background: orange; border: 2px solid red;");Thread.sleep (5000);searchInput.sendKeys("selenium1 selenium2 区别");
//        WebElement searchBtn=webDriver.findElement(By.id("su"));WebElement searchBtn  = webDriver.findElement(By.cssSelector("input[value=百度一下]"));searchBtn.click();Thread.sleep(2000);webDriver.quit();}private static void MutiWindowTest(WebDriver driver)throws InterruptedException {WebDriver newWindow = null ;driver.get("http://www.hao123.com/");//浏览器最大化driver.manage().window().maximize();//获取当前页面句柄String current_handles = driver.getWindowHandle();//点击 百度链接driver.findElement(By.xpath("//*[@data-title='百度' and contains(@class,'sitelink')]")).click();//接下来会有新的窗口打开,获取所有窗口句柄Set<String> all_handles = driver.getWindowHandles();//循环判断,把当前句柄从所有句柄中移除,剩下的就是你想要的新窗口Iterator<String> it = all_handles.iterator();while(it.hasNext()){if(current_handles == it.next()) continue;//跳入新窗口,并获得新窗口的driver - newWindownewWindow = driver.switchTo().window(it.next());}//接下来在新页面进行操作,也就是百度首页,我们输入一个java关键字进行搜索Thread.sleep(1000);WebElement baidu_keyowrd = newWindow.findElement(By.id("kw"));baidu_keyowrd.sendKeys("java");WebElement searchBtn=newWindow.findElement(By.id("su"));searchBtn.click();Thread.sleep(3000);//关闭当前窗口,主要使用close而不是quite,newWindow.close();Thread.sleep(1000);driver.switchTo().window(current_handles);System.out.println(driver.getCurrentUrl());}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/217066.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【华为OD题库-083】玩牌高手-Java

题目 给定一个长度为n的整型数组&#xff0c;表示一个选手在n轮内可选择的牌面分数。选手基于规则选牌&#xff0c;请计算所有轮结束后其可以获得的最高总分数。 选择规则如下: 1.在每轮里选手可以选择获取该轮牌面&#xff0c;则其总分数加上该轮牌面分数&#xff0c;为其新的…

NC 比telnet 强大网络命令

1. 扫描端口 nc -vz google.com 80 使用nc -vz参数可以进行端口扫描&#xff0c;-v表示输出详细信息&#xff0c;-z表示只扫描端口而不发送数据。 nc -nvuz 82.156.125.169 666 nc -nvz 192.168.1.110 1521 --u udp nc -nvz 82.156.125.169 20-24 $ nc -vz -n …

代码随想录刷题题Day11

刷题的第十一天&#xff0c;希望自己能够不断坚持下去&#xff0c;迎来蜕变。&#x1f600;&#x1f600;&#x1f600; 刷题语言&#xff1a;C / Python Day11 任务 ● 理论基础 ● 递归遍历 ● 迭代遍历 ● 统一迭代 1 二叉树理论基础 1.1 二叉树的种类 &#xff08;1&…

CentOS7安装JDK8

1. 下载JDK 下载地址&#xff1a;https://www.oracle.com/cn/java/technologies/javase/javase8u211-later-archive-downloads.html 2. 解压JDK tar -zxvf jdk-8u341-linux-x64.tar.gz -C /usr/local/3. 配置环境变量 打开 /etc/profile vim /etc/profile末尾加上 export…

一文了解 Go 方法

前言 在前面的 一文熟悉 Go 函数 文章中&#xff0c;介绍了 Go 函数的声明&#xff0c;函数的几种形式如匿名函数、闭包、基于函数的自定义类型和函数参数详解等&#xff0c;而本文将对方法进行介绍&#xff0c;方法的本质就是函数&#xff0c;介绍方法的同时也会顺带对比其与函…

算法基础之分解质因数

分解质因数 核心思想&#xff1a;试除法(从小到大枚举所有数) #include<iostream>#include<algorithm>using namespace std;void div(int n){for(int i2;i<n/i;i){if(n%i 0) //找到最小质数i{int s0;while(n%i 0){n/i;s; //记录指数}cout<<i<<&…

js基础:简介、变量与数据类型、流程循环控制语句、数组及其api

JS基础&#xff1a;简介、变量与数据类型、流程循环控制语句、数组及其api 一、简介 1、js概述 tip&#xff1a;JavaScript是什么&#xff1f; 有什么作用&#xff1f; JavaScript&#xff08;简称JS&#xff09;是一种轻量级的、解释性的编程语言&#xff0c;主要用于在网页…

React系列:实现子组件A->父组件-子组件B变量流传

🍁 作者:知识浅谈,CSDN博客专家,阿里云签约博主,InfoQ签约博主,华为云云享专家,51CTO明日之星 📌 擅长领域:全栈工程师、爬虫、ACM算法 💒 公众号:知识浅谈 🔥网站:vip.zsqt.cc React系列总结 🎈useState的使用 创建响应式变量的时候,在react是需要使用u…

企业核心架构(高可用 ,高并发 ,高复用)

标题&#xff1a;构建高可用、高并发和高复用的应用系统 摘要&#xff1a;在当今互联网时代&#xff0c;提供高可用、高并发和高复用的应用系统对于确保用户体验和系统稳定性至关重要。本文将介绍一些常用的技术和最佳实践&#xff0c;以实现高可用性、高并发性和高复用性。并…

手机网站支付有风险吗?

这是一个在当今数字化时代中&#xff0c;消费者们常常会提出的问题。随着科技的发展和移动设备的普及&#xff0c;越来越多的商家开始接受在线支付&#xff0c;这无疑为消费者提供了极大的便利。然而&#xff0c;与此同时&#xff0c;也伴随着一些潜在的风险。本文将探讨手机网…

0012Java程序设计-ssm医院预约挂号及排队叫号系统

文章目录 **摘** **要**目 录系统实现5.2后端功能模块5.2.1管理员功能模块5.2.2医生功能模块 开发环境 摘 要 网络的广泛应用给生活带来了十分的便利。所以把医院预约挂号及排队叫号管理与现在网络相结合&#xff0c;利用java技术建设医院预约挂号及排队叫号系统&#xff0c;实…

Nginx安装【保姆级别】

目录 1.Nginx开源版本安装&#x1f495;&#x1f495;&#x1f495; 2.传到linux&#x1f495;&#x1f495;&#x1f495; 3.在linux上安装 &#x1f495;&#x1f495;&#x1f495; 4.启动Nginx &#x1f495;&#x1f495;&#x1f495; 5.安装成系统服务 &#x1f495…

【1day】复现飞企互联 FE业务协作平台editflow_manager文件SQL注入漏洞

注:该文章来自作者日常学习笔记,请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与作者无关。 目录 一、漏洞描述 二、影响版本 三、资产测绘 四、漏洞复现

Dockerfile创建镜像INMP+wordpress

Dockerfile创建镜像INMPwordpress 需要哪些呢&#xff1a; Nginx 172.111.0.10 docker-nginx Mysql 172.111.0.20 docker-mysql PHP 172.111.0.30 docker-PHP 开始实验&#xff1a; 创建各级目录&#xff0c;他们各自的包和配置文件必须要在同一目录下才可以生效&…

Fiddler中AutoResponder的简单使用

AutoResponder&#xff0c;自动回复器&#xff0c;用于将 HTTP 请求重定向为指定的返回类型。 这个功能有点像是一个代理转发器&#xff0c;可以将某一请求的响应结果替换成指定的资源&#xff0c;可以是某个页面也可以是某个本地文件 1.使用 打开“Fiddler”&#xff0c;点击…

掌握iText:轻松处理PDF文档-高级篇-加密和解密

前言 iText作为一个功能强大、灵活且广泛应用的PDF处理工具&#xff0c;在实际项目中发挥着重要作用。通过这些文章&#xff0c;读者可以深入了解如何利用iText进行PDF的创建、编辑、加密和提取文本等操作&#xff0c;为日常开发工作提供了宝贵的参考和指导。 掌握iText&#…

【Vue】router.push用法实现路由跳转

目录 router.push用法 在Login.vue中 在Register.vue中 ​ 上一篇&#xff1a;登录与注册界面的制作 https://blog.csdn.net/m0_67930426/article/details/134895214?spm1001.2014.3001.5502 制作了登录与注册界面&#xff0c;并介绍了相关表单元素即属性的用法 在登录页面…

Docker笔记:关于Dockerfile及构建镜像

Dockerfile 的作用 Dockerfile让docker命令变得更简单&#xff0c;是用于构建docker镜像&#xff0c;实现自动化部署 Dockerfile 构建自己的centos镜像 这里有一个应用场景&#xff0c;创建一个自己的centos镜像&#xff0c;这个镜像有我们所需的软件 可以将我们一系列的操作…

人大金仓V8R6进阶授权操作

授权用户myuser在模式myschema 单表的所有权限 GRANT ALL ON TABLE "myschema"."mytable" to "myuser"; 授权用户myuser在模式myschema 单表的查询权限 GRANT SELECT ON TABLE "myschema"."mytable" to "myuser";…

jQuery遍历与删除添加节点

个人名片&#xff1a; &#x1f60a;作者简介&#xff1a;一名大二在校生 &#x1f921; 个人主页&#xff1a;坠入暮云间x &#x1f43c;座右铭&#xff1a;懒惰受到的惩罚不仅仅是自己的失败&#xff0c;还有别人的成功。 &#x1f385;**学习目标: 坚持每一次的学习打卡 文章…