selenium学习笔记--java
2021/9/19 12:04:45
本文主要是介绍selenium学习笔记--java,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
selenium学习笔记–java
- 配置加载驱动。
- 打开网址 driver.get(url) 、driver.navigate().to(url);
ChromeOptions options = new ChromeOptions(); WebDriver driver = new ChromeDriver(options); driver.get("https://music.163.com/"); driver.navigate().to(driver.getCurrentUrl());
- driver.getCurrentUrl(); 获取当前网址
- driver.getWindowHandle(); 获取当前窗口句柄。driver.getWindowHandles():获取所有窗口句柄
- driver.close(); 关闭当前窗口。driver.quit(); 退出浏览器
- 切换frame: driver.switchTo().frame(iframe); driver.switchTo().frame(“buttonframe”); driver.switchTo().frame(1);
- 离开当前frame: driver.switchTo().defaultContent();
// 使用webElement WebElement element = driver.findElement(By.xpath("")); driver.switchTo().frame(element); // 使用id或者name driver.switchTo().frame(""); // 使用索引方式 driver.switchTo().frame(1); // 离开frame driver.switchTo().defaultContent();
- 设置窗口大小:driver.manage().window().setSize(new Dimension(1024, 768));
- 屏幕截图两种方式:这个截图或者webElement截图
driver.get("https://music.163.com/"); // 对整个页面截图 File screenshotFile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE); FileUtils.copyFile(screenshotFile, new File("D:\\idea\\gitee\\studySelenium\\src\\main\\resources\\screenshot.png")); // 对WebElement截图 WebElement element = driver.findElement(By.xpath("//*[@id=\"g_nav2\"]/div")); File elementScreenshot = element.getScreenshotAs(OutputType.FILE); FileUtils.copyFile(elementScreenshot, new File("D:\\idea\\gitee\\studySelenium\\src\\main\\resources\\element_screenshot.png"));
10.执行js:
driver.get("https://www.baidu.com/"); JavascriptExecutor js = (JavascriptExecutor) driver; js.executeScript("console.log('执行js')"); driver.findElement(By.xpath("//*[@id=\"kw\"]")).sendKeys("软件测试大赛"); WebElement element = driver.findElement(By.xpath("//*[@id=\"su\"]")); js.executeScript("arguments[0].click();", element);
- 使用Http代理:
ChromeOptions options = new ChromeOptions(); Proxy proxy = new Proxy(); proxy.setHttpProxy(""); options.setProxy(proxy); ChromeDriver driver = new ChromeDriver(options); driver.get("");
- 配置页面加载策略
ChromeOptions options = new ChromeOptions(); // eager 放弃加载 样式 图片 和 subframes options.setPageLoadStrategy(PageLoadStrategy.EAGER); // normal 加载内容直到加载事件返回 options.setPageLoadStrategy(PageLoadStrategy.NORMAL); // none 初始页面加载完成 options.setPageLoadStrategy(PageLoadStrategy.NONE);
- 在元素中查找元素
ChromeDriver driver = new ChromeDriver(); WebElement from = driver.findElement(By.tagName("from")); from.findElement(By.name("q")).sendKeys("0000");
- WebElement元素操作
- isEnabled():元素是否可用
- isSelected():元素是否被选中 主要应用于radio
- driver.switchTo().activeElement():获取激活元素
ChromeDriver driver = new ChromeDriver(); driver.get("https://www.baidu.com/"); WebElement wd = driver.findElement(By.name("wd")); // 判断是否被选中 System.out.println(wd.isSelected()); // 返回标签名 System.out.println(wd.getTagName()); // 获取元素矩形 Rectangle rect = wd.getRect(); // 返回左上角x、y坐标 System.out.println(rect.getX() + "----" + rect.getY()); // 返回宽高 System.out.println(rect.getWidth() + "----" + rect.getHeight()); // 获取css样式数据 String color = wd.getCssValue("color"); System.out.println(color); // 获取文本内容 wd.sendKeys("sdfadf"); String text = wd.getText(); System.out.println(text); driver.quit();
- 键盘操作
- sendKeys() :输入
- 使用Actions.keyDown (Actions.keyUp) 键盘按下抬起等操作
- webElement.clear() 清空文本框操作(必须是文本框否则会报错)
public void keyboardOperate() { driver.get("https://www.baidu.com/"); // 输入内容后 按下enter键 driver.findElement(By.name("wd")).sendKeys("webdriver" + Keys.ENTER); Actions actionsProvider = new Actions(driver); // 全选 Action keyDownTest = actionsProvider.keyDown(Keys.CONTROL).sendKeys("a").build(); keyDownTest.perform(); } public void keyboardOperateClear(){ driver.navigate().to("https://www.baidu.com/"); WebElement search = driver.findElement(By.name("wd")); search.sendKeys("selenium"); search.clear(); }
这篇关于selenium学习笔记--java的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-09-28微服务架构中API版本控制的实践
- 2024-09-28AI给的和自己写的Python代码,都无法改变输入框的内容,替换也不行
- 2024-09-27Sentinel配置限流资料:新手入门教程
- 2024-09-27Sentinel配置限流资料详解
- 2024-09-27Sentinel限流资料:新手入门教程
- 2024-09-26Sentinel限流资料入门详解
- 2024-09-26Springboot框架资料:初学者入门教程
- 2024-09-26Springboot框架资料详解:新手入门教程
- 2024-09-26Springboot企业级开发资料:新手入门指南
- 2024-09-26SpringBoot企业级开发资料新手指南