首页 > 其他分享 >综合方法selenium整理

综合方法selenium整理

时间:2022-12-20 18:05:15浏览次数:67  
标签:selenium driver element WebElement findElement 整理 new id 综合

1.1  下载selenium2.0的包

  1. 官方download包地址:​​http://code.google.com/p/selenium/downloads/list​
  2. 官方User Guide:   ​​http://seleniumhq.org/docs/​
  3. 官方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浏览器

            WebDriverdriver = new HtmlUnitDriver(); 

  • 打开chrome浏览器

       WebDriverdriver = 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:\test\\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;

);

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);  //异步脚本的超时时间



标签:selenium,driver,element,WebElement,findElement,整理,new,id,综合
From: https://blog.51cto.com/u_14181351/5956384

相关文章

  • pyppeteer:比 selenium 更高效的爬虫利器
     API接口文档:APIReference:​​https://miyakogi.github.io/pyppeteer/reference.html​​pyppeteer github地址:​​https://github.com/miyakogi/pyppeteer​​pyppete......
  • puppeteer( Nodejs 版 selenium )快速入门
    puppeteer官网:​​https://pptr.dev/​​Puppeteer中文文档(与官Puppeteer中文文档 :​​https://learnku.com/docs/puppeteer/3.1.0​​Puppeteerv1.5.0中文翻peteer......
  • Selenium2.0中文在线文档项目,求翻译达人
    前一阵子在学习selenium2.0,发现网上很多资料都是selenium1.0的且部分信息不准确,无奈只能去官方看英文文档。费劲巴拉的看完了后,就有想法把selenium2.0的文档进行中文翻译,并......
  • 【Selenium :3种等待方式详解】
    应用场景自动化打开一个网页的时候,内部网页元素加载完全有一点的延迟性,因此在做Web端的自动化测试的时候,一般都需要在测试case时加入一些等待操作。我们常用等待操作有......
  • 【Selenium : 文件操作】
    一、前言文件操作是Web端自动化中比较常用的一个操作,一般文件操作包含:上传、下载WebDriver仅仅提供了下载文件相关的API,上传文件的API并没实现,需要我们自己去实现;而且......
  • Java Selenium封装--RemoteWebElement
    packagecom.selenium.driver;importjava.sql.SQLException;importjava.util.List;importorg.json.JSONException;importorg.openqa.selenium.By;importorg.openqa.sel......
  • selenium webdriver的各种driver
    selenium官方加上第三方宣布支持的驱动有很多种;除了PC端的浏览器之外,还支持iphone、android的driver;大概记录一下selenium支持的各种driver的用途与说明。selenium可支持的P......
  • 计算机视觉面试中一些热门话题整理
    通常在机器学习面试中,问完常见基础知识的技术问题之后会有具体的项目问题的讨论,所以这里准备了一些项目相关的话题,以可以帮助你准备和通过计算机视觉相关的面试。计算机......
  • 【CANN训练营第三季】昇腾AI入门课知识点整理和汇总
    【CANN训练营第三季】昇腾AI入门课知识点整理和汇总CANN提供的昇腾语言计算接口是:AscendCL。 昇腾目前支持以下AI深度学习框架:昇思MindSpore、TensorFlow、PytorchCANN包含......
  • 《吐血整理》高级系列教程-吃透Fiddler抓包教程(37)-掌握Fiddler中Fiddler Script用法
    1.简介Fiddler是一款强大的HTTP抓包工具,它能记录所有客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出数据.使用Fiddler无论对开发还是测试来说,......