Java-Chrome-Selenium学习使用记录

本文详细介绍了如何使用Selenium库进行Web自动化测试,包括下载链接、设置Chrome驱动,以及常见定位方式和执行JS脚本。重点讲述了Chrome版本与chromedriver版本的匹配和Demo操作过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开发依赖

  1. selenium包
    1. 下载地址:http://selenium-release.storage.googleapis.com/index.html
  2. chromedriver浏览器驱动
    1. 下载地址:http://chromedriver.storage.googleapis.com/index.html
    2. chrome版本与chromedriver版本对照表:https://blog.youkuaiyun.com/huilan_same/article/details/51896672

DEMO

// chrome浏览器驱动路径 注意chrome版本与驱动版本的兼容性
		String driverPath = "driver/chromedriver.exe";
		System.setProperty("webdriver.chrome.driver", driverPath);

		ChromeOptions options = new ChromeOptions();
		// 参数为关闭chrome浏览器提示“Chrome正受到自动测试软件的控制”
		options.setExperimentalOption("excludeSwitches", new String[]{"enable-automation"});
		options.addArguments("disable-infobars");
		// 带参数启动Chrome浏览器
		WebDriver driver = new ChromeDriver(options);
		// 最大化浏览器
		driver.manage().window().maximize();
		// 进入指定url 注意此处http://不可省略
		driver.get("http://www.baidu.com");
		// 根据id获取百度内容输入框元素
		WebElement searchInputElement = driver.findElement(By.id("kw"));
		// 清空输入框
		searchInputElement.clear();
		// 键入指定搜索内容
		searchInputElement.sendKeys("selenium");
		// 根据class名获取百度一下点击按钮元素
		// 当类名包含空格时不能使用By.className寻找元素,这里改用css选择器
		//WebElement searchButtonElement = driver.findElement(By.className("btn self-btn bg s_btn"));
		WebElement searchButtonElement = driver.findElement(By.cssSelector("[class='bg s_btn']"));
		// 点击指定元素
		searchButtonElement.click();

		// 等待5s防止点击查询后瞬间关闭页面
		try {
			Thread.sleep(5000);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		// 关闭页面(进程还在)
		driver.close();
		// 关闭浏览器(进程也会结束)
		driver.quit();

常用定位方式

  • driver.findElement(By.id())

  • driver.findElement(By.name())

  • driver.findElement(By.className())

    • 如class名包含空格时使用该方法会报错,请用其他方法定位如cssSelector、xpath
  • driver.findElement(By.xpath())

    • //根级
    • /下一级
    • *任意元素
    • .当前节点所在级
    • ..上一级
    • ancestor祖先节点 包括父
    • parent父节点
    • prceding-sibling当前元素节点标签之前的所有兄弟节点
    • prceding当前元素节点标签之前的所有节点
    • following-sibling当前元素节点标签之后的所有兄弟节点
    • following当前元素节点标签之后的所有节点
    • preceding-sibling::*同级前一个节点的元素
    • following::*同级后一个节点的元素
    • input[@id='kw']id为“kw”的input元素
    • input[contains(@class,'kw')]class名包含有"kw"的input元素
    • button[starts-with(@class,"btn")]
    • input[ends-with(@class,"-special")]
    • 更多详见https://www.w3school.com.cn/xpath/xpath_syntax.asp
  • driver.findElement(By.cssSelector())

执行JS脚本,并获取返回值

String script = "return document.getElementById('" + id + "').height;";
JavascriptExecutor j = (JavascriptExecutor) driver;
String res = j.executeScript(script) + "";
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值