selenium常用方法
常用方法汇总表
1.浏览器驱动和基本配置
| 操作类别 | 方法/代码 | 说明 |
|---|---|---|
| 初始化驱动 | WebDriver driver = new ChromeDriver(); | 启动 Chrome 浏览器 (需配置驱动路径或使用 Selenium Manager) |
| 访问页面 | driver.get("url"); driver.navigate().to("url"); | 打开指定 URL |
| 关闭当前窗口 | driver.close(); | 关闭当前聚焦的窗口或标签页 |
| 退出会话 | driver.quit(); | 关闭所有窗口并结束 WebDriver 会话,释放资源 |
| 浏览器后退 | driver.navigate().back(); | 模拟点击浏览器后退按钮 |
| 浏览器前进 | driver.navigate().forward(); | 模拟点击浏览器前进按钮 |
| 刷新页面 | driver.navigate().refresh(); | 刷新当前页面 |
| 窗口最大化 | driver.manage().window().maximize(); | 将浏览器窗口最大化 |
| 设置窗口大小 | driver.manage().window().setSize(new Dimension(800, 600)); | 自定义浏览器窗口宽高 |
| 获取当前 URL | driver.getCurrentUrl(); | 返回当前页面的 URL 字符串 |
| 获取页面标题 | driver.getTitle(); | 返回当前页面的 Title 字符串 |
| 获取页面源码 | driver.getPageSource(); | 返回当前页面的 HTML 源码 |
代码示例
System.setProperty("webdriver.chrome.driver","/Users/alex/Documents/tool/chromedriver/chromedriver");
ChromeOptions options = new ChromeOptions();
WebDriver driver = new ChromeDriver(options);
driver.get("https://www.163.com/");
WebElement input = driver.findElement(By.xpath("//*[@id='netease_search_input']"));
System.out.println(input.isDisplayed());
System.out.println(input.isEnabled());
System.out.println(input.isSelected());
input.click();
System.out.println(input.isSelected());
input.sendKeys("梅西");
Thread.sleep(2000);
input.clear();
Thread.sleep(2000);
input.sendKeys("世界杯");
WebElement submit = driver.findElement(By.xpath("//*[@id='netease_search_btn']"));
System.out.println(submit.getLocation());
System.out.println(submit.getSize());
submit.click();
Thread.sleep(2000);
driver.quit();
2.元素操作 (WebElement 对象)
| 操作类别 | 方法 | 说明 |
|---|---|---|
| 点击 | elem.click(); | 点击元素 |
| 输入文本 | elem.sendKeys("text"); | 在输入框中输入内容 |
| 清空文本 | elem.clear(); | 清空输入框内容 |
| 获取文本 | elem.getText(); | 获取元素内部的可见文本 |
| 获取属性 | elem.getAttribute("href"); | 获取指定属性的值 (如 href, value, class) |
| 获取标签名 | elem.getTagName(); | 获取元素的标签名称 (如 input, div) |
| 是否显示 | elem.isDisplayed(); | 判断元素是否在页面上可见 |
| 是否可用 | elem.isEnabled(); | 判断元素是否可交互 (非 disabled 状态) |
| 是否选中 | elem.isSelected(); | 判断单选框/复选框是否被选中 |
| 提交表单 | elem.submit(); | 提交元素所在的表单 (仅限 form 内元素) |
| 获取位置 | elem.getLocation(); | 获取元素左上角坐标 (Point 对象) |
| 获取尺寸 | elem.getSize(); | 获取元素宽高 (Dimension 对象) |
代码示例
System.setProperty("webdriver.chrome.driver","/Users/alex/Documents/tool/chromedriver/chromedriver");
ChromeOptions options = new ChromeOptions();
WebDriver driver = new ChromeDriver(options);
driver.get("https://www.163.com/");
WebElement input = driver.findElement(By.xpath("//*[@id='netease_search_input']"));
System.out.println(input.isDisplayed());
System.out.println(input.isEnabled());
System.out.println(input.isSelected());
input.click();
System.out.println(input.isSelected());
input.sendKeys("梅西");
Thread.sleep(2000);
input.clear();
Thread.sleep(2000);
input.sendKeys("世界杯");
WebElement submit = driver.findElement(By.xpath("//*[@id='netease_search_btn']"));
System.out.println(submit.getLocation());
System.out.println(submit.getSize());
submit.click();
Thread.sleep(2000);
driver.quit();
3.鼠标与键盘高级操作 (Actions)
| 操作类别 | 方法 | 说明 |
|---|---|---|
| 悬停 | actions.moveToElement(elem).perform(); | 鼠标移动到元素上方 (Hover) |
| 右键点击 | actions.contextClick(elem).perform(); | 对元素执行右键点击 |
| 双击 | actions.doubleClick(elem).perform(); | 对元素执行双击 |
| 拖拽 | actions.dragAndDrop(source, target).perform(); | 将源元素拖拽到目标元素位置 |
| 按键按下 | actions.keyDown(Keys.CONTROL).perform(); | 按下控制键 (需配合 keyUp 释放) |
| 按键释放 | actions.keyUp(Keys.CONTROL).perform(); | 释放控制键 |
| 组合操作 | actions.sendKeys(Keys.chord(Keys.CONTROL, "c")).perform(); | 模拟 Ctrl+C 复制 |
代码示例
https://www.selenium.dev/documentation/webdriver/actions_api/
4.窗口与 Frame 切换
| 操作类别 | 方法 | 说明 |
|---|---|---|
| 获取所有句柄 | driver.getWindowHandles(); | 返回所有窗口句柄的 Set 集合 |
| 获取当前句柄 | driver.getWindowHandle(); | 返回当前窗口的句柄 |
| 切换窗口 | driver.switchTo().window(handle); | 切换到指定句柄的窗口 |
| 切换 Frame | driver.switchTo().frame("frameName"); | 切换到 iframe (可通过索引、名称或 WebElement) |
| 切回主文档 | driver.switchTo().defaultContent(); | 从 iframe 切回最外层页面 |
| 切回父 Frame | driver.switchTo().parentFrame(); | 切换到上一级 frame |
| 处理 Alert | driver.switchTo().alert().accept(); | 接受弹窗 (点击确定) |
| 处理 Alert | driver.switchTo().alert().dismiss(); | 拒绝弹窗 (点击取消) |
| 获取 Alert 文本 | driver.switchTo().alert().getText(); | 获取弹窗中的文本内容 |
代码示例
https://www.selenium.dev/documentation/webdriver/interactions/frames/
https://www.selenium.dev/documentation/webdriver/interactions/windows/
5.下拉框处理 (Select)
| 操作类别 | 方法 | 说明 |
|---|---|---|
| 通过索引选择 | select.selectByIndex(1); | 选择第 2 个选项 (索引从 0 开始) |
| 通过值选择 | select.selectByValue("value"); | 选择 option 标签中 value 属性匹配项 |
| 通过文本选择 | select.selectByVisibleText("文本"); | 选择可见文本匹配的选项 |
| 获取所有选项 | select.getOptions(); | 返回所有选项的 List |
| 获取已选选项 | select.getAllSelectedOptions(); | 返回所有已选中的选项 (多选框适用) |
| 判断是否多选 | select.isMultiple(); | 判断下拉框是否支持多选 |
6.执行js
代码示例
System.setProperty("webdriver.chrome.driver","/Users/alex/Documents/tool/chromedriver/chromedriver");
ChromeOptions options = new ChromeOptions();
WebDriver driver = new ChromeDriver(options);
driver.get("https://www.163.com/");
driver.manage().window().maximize();
JavascriptExecutor js = (JavascriptExecutor) driver;
for (int i = 0; i < 3; i++){
js.executeScript("window.scrollBy(0, 500);;");
Thread.sleep(2000);
}
driver.quit();

浙公网安备 33010602011771号