zoukankan      html  css  js  c++  java
  • selenium_java常用API操作

    selenium:
    selenium2(WebDriver) API
    1.1 下载selenium2.0的包

    官方download包地址:http://code.google.com/p/selenium/downloads/list
    官方User Guide:   http://seleniumhq.org/docs/
    官方API:       http://selenium.googlecode.com/git/docs/api/java/index.html

    1.2.1 用webdriver打开一个浏览器

    打开firefox浏览器:

        WebDriver driver = new FirefoxDriver();

    打开IE浏览器

         WebDriver driver = new InternetExplorerDriver ();

    打开HtmlUnit浏览器

        WebDriver driver = new HtmlUnitDriver();

    打开chrome浏览器

           WebDriver driver = new ChromeDriver();
    1.2.2 最大化浏览器  

      WebDriver driver = new FirefoxDriver();
      driver.manage().window().maximize();
    1.2.3 关闭浏览器 

    WebDriver driver = new FirefoxDriver();

      driver.close();
      driver.quit();

    1.3 打开测试页面

    driver.get("http://www.google.com");
    driver.navigate().to("http://www.baidu.com/");

          P.S.navigate方法会产生1个Navigator对象,其封装了与导航相关的一些方法,比如前进后退等
    1.4 页面元素定位

    Webdriver提供下面两种方法来定位页面元素,参数是By对像,最常用是By.id和By.name查找。

    findElement   定位某个元素,如果没有找到元素会抛出异常:NoSuchElementException
    findElements 定位一组元素

    例如需要定位如下元素:

      <input class="input_class" type="text" name="passwd" id="passwd-id" />

    By.id:

          WebElement element = driver.findElement(By.id("passwd-id"));

    By.name:

          WebElement element = driver.findElement(By.name("passwd"));

    By.xpath:

          WebElement element =driver.findElement(By.xpath("//input[@id='passwd-id']"));

    By.className

          WebElement element = driver.findElement(By.className("input_class"));

    By.cssSelector

          WebElement element = driver.findElement(By.cssSelector(".input_class"));

    By.linkText:

          //通俗点就是精确查询

          WebDriver driver = new FirefoxDriver();
          driver.get("http://www.baidu.com/");
          WebElement element = driver.findElement(By.linkText("百科"));

    By.partialLinkText:

          //这个方法就是模糊查询
          WebDriver driver = new FirefoxDriver();
          driver.get("http://www.baidu.com/");
          WebElement element = driver.findElement(By.partialLinkText("hao"));

    By.tagName:

          WebDriver driver = new FirefoxDriver();
          driver.get("http://www.baidu.com/");
          String test= driver.findElement(By.tagName("form")).getAttribute("name");
          System.out.println(test);
    1.5 如何对页面元素进行操作
    1.5.1 输入框(text field or textarea)

    WebElement element = driver.findElement(By.id("passwd-id"));

    element.sendKeys(“test”);//在输入框中输入内容:
    element.clear();     //将输入框清空
    element.getText();   //获取输入框的文本内容:

    1.5.2下拉选择框(Select)

    Select select = new Select(driver.findElement(By.id("select")));

    select.selectByVisibleText(“A”);
    select.selectByValue(“1”);
    select.deselectAll();
    select.deselectByValue(“1”);
    select.deselectByVisibleText(“A”);
    select.getAllSelectedOptions();
    select.getFirstSelectedOption();

    1.5.3单选项(Radio Button)

    WebElement radio=driver.findElement(By.id("BookMode"));

    radio.click();     //选择某个单选项
    radio.clear();     //清空某个单选项
    radio.isSelected();  //判断某个单选项是否已经被选择

    1.5.4多选项(checkbox)

    WebElement checkbox = driver.findElement(By.id("myCheckbox."));

    checkbox.click();
    checkbox.clear();
    checkbox.isSelected();
    checkbox.isEnabled();

    1.5.5按钮(button)

    WebElement btn= driver.findElement(By.id("save"));

    btn.click();      //点击按钮
    btn.isEnabled ();  //判断按钮是否enable

    1.5.7弹出对话框(Popup dialogs)

    Alert alert = driver.switchTo().alert();

    alert.accept();  //确定
    alert.dismiss();  //取消
    alert.getText(); //获取文本

    1.5.8表单(Form)

      Form中的元素的操作和其它的元素操作一样,对元素操作完成后对表单的提交可以:

      WebElement approve = driver.findElement(By.id("approve"));

      approve.click();

      approve.submit();//只适合于表单的提交
    1.5.9上传文件

    上传文件的元素操作:

      WebElement adFileUpload =driver.findElement(By.id("WAP-upload"));

      String filePath = "C: est\uploadfile\media_ads\test.jpg";

      adFileUpload.sendKeys(filePath);
    1.6 Windows 和 Frames之间的切换

    driver.switchTo().defaultContent();     //返回到最顶层的frame/iframe
    driver.switchTo().frame("leftFrame");    //切换到某个frame:
    driver.switchTo().window("windowName"); //切换到某个window

    1.7 调用Java Script

    Web driver对Java Script的调用是通过JavascriptExecutor来实现的,例如:

    JavascriptExecutor js = (JavascriptExecutor) driver;

    js.executeScript("JS脚本");
    1.8 超时设置

    WebDriver driver = new FirefoxDriver();

    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);     //识别元素时的超时时间
    driver.manage().timeouts().pageLoadTimeout(10, TimeUnit.SECONDS);  //页面加载时的超时时间
    driver.manage().timeouts().setScriptTimeout(10, TimeUnit.SECONDS);  //异步脚本的超时时间

  • 相关阅读:
    Poj2516 最小费用最大流
    spss研究高等院校人文社会研究课题受什么因素影响
    使用bs4实现将诗词名句网站中三国演义小说章节内容爬取
    python爬虫1 爬虫概要
    解析出所有城市名称
    xpath爬取58二手房的房源信息
    Po两段小代码,说几个小细节____关于九九乘法表&amp;amp;amp;国际象棋棋盘
    小爬虫demo——爬取“妹子”等网站链接____使用requests库
    爬取京东历史图书图片并下载到本地____requests库
    python基础:复习整理笔记(一)____关于 工具、程序执行原理、python风格规范
  • 原文地址:https://www.cnblogs.com/hcxy2007107708/p/12731006.html
Copyright © 2011-2022 走看看