selenium学习笔记--java

selenium学习笔记–java

  1. 配置加载驱动。
  2. 打开网址 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());
  1. driver.getCurrentUrl(); 获取当前网址
  2. driver.getWindowHandle(); 获取当前窗口句柄。driver.getWindowHandles():获取所有窗口句柄
  3. driver.close(); 关闭当前窗口。driver.quit(); 退出浏览器
  4. 切换frame: driver.switchTo().frame(iframe); driver.switchTo().frame(“buttonframe”); driver.switchTo().frame(1);
  5. 离开当前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();
  1. 设置窗口大小:driver.manage().window().setSize(new Dimension(1024, 768));
  2. 屏幕截图两种方式:这个截图或者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);
        
  1. 使用Http代理:
		ChromeOptions options = new ChromeOptions();
        Proxy proxy = new Proxy();
        proxy.setHttpProxy("");
        options.setProxy(proxy);
        ChromeDriver driver = new ChromeDriver(options);
        driver.get("");
  1. 配置页面加载策略
        ChromeOptions options = new ChromeOptions();
        // eager 放弃加载 样式 图片 和 subframes
        options.setPageLoadStrategy(PageLoadStrategy.EAGER);
        // normal 加载内容直到加载事件返回
        options.setPageLoadStrategy(PageLoadStrategy.NORMAL);
        // none 初始页面加载完成
        options.setPageLoadStrategy(PageLoadStrategy.NONE);
  1. 在元素中查找元素
        ChromeDriver driver = new ChromeDriver();
        WebElement from = driver.findElement(By.tagName("from"));
        from.findElement(By.name("q")).sendKeys("0000");
  1. 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();
  1. 键盘操作
  • 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();
    }
上一篇:list2Txt.py


下一篇:C++ WIN32 socket 客户端