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();
}