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

news/2025/2/21 7:17:54/

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.ppmy.cn/news/1267410.html

相关文章

智能查券机器人:导购APP的新趋势

智能查券机器人&#xff1a;导购APP的新趋势 大家好&#xff0c;我是免费搭建查券返利机器人赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 在当今这个数字化时代&#xff0c;网络购物已经成为人们日常生活的一部…

深入理解Disruptor - 无锁并发框架的革命

1. Disruptor框架简介 概述&#xff1a; Disruptor是一种高性能的内存队列&#xff0c;最初由LMAX开发&#xff0c;目的是在低延迟交易系统中替代传统的阻塞队列。它通过使用环形数组和无锁的发布/订阅模式&#xff0c;显著降低了线程间通信的延迟。这种设计使得它在多生产者-…

(C++)最大连续1的个数--滑动窗口

个人主页&#xff1a;Lei宝啊 愿所有美好如期而遇 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台备战技术面试&#xff1f;力扣提供海量技术面试资源&#xff0c;帮助你高效提升编程技能&#xff0c;轻松拿下世界 IT 名企 Dream Offer。https://le…

听GPT 讲Rust源代码--src/tools(8)

File: rust/src/tools/rust-analyzer/crates/ide-assists/src/handlers/add_missing_match_arms.rs 在Rust源代码中&#xff0c;rust-analyzer是一个Rust编程语言的语言服务器。它提供了代码补全、代码重构和代码导航等功能来帮助开发者提高编码效率。 在rust-analyzer的代码目…

​secrets --- 生成管理密码的安全随机数​

3.6 新版功能. 源代码: Lib/secrets.py secrets 模块用于生成高度加密的随机数&#xff0c;适于管理密码、账户验证、安全凭据及机密数据。 最好用 secrets 替代 random 模块的默认伪随机数生成器&#xff0c;该生成器适用于建模和模拟&#xff0c;不宜用于安全与加密。 参见…

ArcGIS Pro 指定范围裁剪点云

一、轨迹点 转 轨迹线&#xff1a;【工具】点集转线 二、线平行复制 三、封闭线 四、线转面&#xff1a;【工具】要素转面 五、裁剪点云&#xff1a;【工具】提取LAS

第三十二章 控制到 XML 模式的映射 - %ListOfObjects

文章目录 第三十二章 控制到 XML 模式的映射 - %ListOfObjects%ArrayOfObjects 第三十二章 控制到 XML 模式的映射 - %ListOfObjects 本部分显示了从支持 XML 的类生成的 XML架构的一部分&#xff0c;该类包含定义为 %ListOfObjects 的属性。例如&#xff0c;考虑以下属性定义…

环境安全之配置管理及配置安全设置指导

一、前言 IT运维过程中&#xff0c;配置的变更和管理是一件非常重要且必要的事&#xff0c;除了一般宏观层面的配置管理&#xff0c;还有应用配置参数的配置优化&#xff0c;本文手机整理常用应用组件配置项配置&#xff0c;尤其安全层面&#xff0c;以提供安全加固指导实践。…