• webdriver---API---(java版) 6


    1、判断页面元素是否存在/可用

    package cn.gloryroad;
    
    import org.testng.annotations.Test;
    import org.testng.annotations.BeforeMethod;
    import org.openqa.selenium.By;
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.WebElement;
    import org.openqa.selenium.chrome.ChromeDriver;
    import org.testng.Assert;
    import org.testng.annotations.AfterMethod;
    
    public class ApiTest3 {
        public WebDriver driver;
        String baseUrl;
      @Test
      public void f() {
          baseUrl="http://www.sogou.com";
          driver.get(baseUrl);
          WebElement inputBox=driver.findElement(By.id("query"));
          if(inputBox.isEnabled()==true){
              inputBox.sendKeys("sogou 页面搜索输入框已经被找到");
          }else{
              Assert.fail("页面上输入框元素未被找到!");
          }
      }
      @BeforeMethod
      public void beforeMethod() {
          System.setProperty("webdriver.chrome.driver", "C:\chromedriver\chromedriver.exe");
          driver=new ChromeDriver();
      }
    
      @AfterMethod
      public void afterMethod() {
          try{
              Thread.sleep(3000);
          }catch(InterruptedException e){
              e.printStackTrace();
          }
          driver.quit();
      }
    
    }

    2、操作新弹出的浏览器窗口

    package cn.gloryroad;
    
    import org.testng.annotations.Test;
    
    
    
    import org.testng.annotations.BeforeMethod;
    
    import java.util.Set;
    
    import org.openqa.selenium.By;
    import org.openqa.selenium.NoSuchWindowException;
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.WebElement;
    import org.openqa.selenium.chrome.ChromeDriver;
    import org.testng.Assert;
    import org.testng.annotations.AfterMethod;
    
    public class ApiTest3 {
        public WebDriver driver;
        String baseUrl;
      @Test
      public void f() {
          baseUrl="http://www.sogou.com";
          driver.get(baseUrl);
          String parentWindowHandle=driver.getWindowHandle();
          WebElement inputBox=driver.findElement(By.xpath(".//*[@id='QRcode-footer']/div[2]/a[3]"));
          
              inputBox.click();
          
          Set<String>allwindowsHandles= driver.getWindowHandles();
          if(!allwindowsHandles.isEmpty()){
              for(String windowHandle : allwindowsHandles){
                  try{
                      if(driver.switchTo().window(windowHandle).getPageSource().contains("春装上新"))
                      {
                          driver.findElement(By.id("f81")).click();
                      }
                  }catch(NoSuchWindowException e){
                      e.printStackTrace();
                  }
              }
          }
          driver.switchTo().window(parentWindowHandle);
          driver.findElement(By.id("query")).sendKeys("回到搜狗首页!");
      }
      @BeforeMethod
      public void beforeMethod() {
          System.setProperty("webdriver.chrome.driver", "C:\chromedriver\chromedriver.exe");
          driver=new ChromeDriver();
      }
    
      @AfterMethod
      public void afterMethod() {
          try{
              Thread.sleep(5000);
          }catch(InterruptedException e){
              e.printStackTrace();
          }
          driver.quit();
      }
    
    }

     3、操作javaScript的Alert、confirm、prompt弹窗

    package cn.gloryroad;
    
    import org.testng.annotations.Test;
    
    import java.io.File;
    
    import org.testng.annotations.BeforeMethod;
    import java.util.Set;
    
    import org.openqa.selenium.Alert;
    import org.openqa.selenium.By;
    import org.openqa.selenium.NoAlertPresentException;
    import org.openqa.selenium.NoSuchWindowException;
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.WebElement;
    import org.openqa.selenium.chrome.ChromeDriver;
    import org.testng.Assert;
    import org.testng.annotations.AfterMethod;
    
    public class ApiTest3 {
        public WebDriver driver;
        String baseUrl;
      @Test
      public void f() {
         File file=new File("D:\workspace\WebDriver-API\src\alert.html");
         String filePath=file.getAbsolutePath();
         driver.get(filePath);
         WebElement button =driver.findElement(By.xpath("//input"));
         button.click();
         try{
             Alert alert=driver.switchTo().alert();//获得alert元素
             Assert.assertEquals("这是一个alert弹出框", alert.getText());
             alert.accept();//点击确定   alert.dismiss();在prompt、confirm弹出框点击取消  
             //alert.sendKeys();方法,在prompt弹出框输入内容   alert弹出框在页面点击操作时,可能看不到,可以加一个输出操作
         }catch(NoAlertPresentException e){
             e.printStackTrace();
         }
      }
      @BeforeMethod
      public void beforeMethod() {
          System.setProperty("webdriver.chrome.driver", "C:\chromedriver\chromedriver.exe");
          driver=new ChromeDriver();
      }
    
      @AfterMethod
      public void afterMethod() {
          try{
              Thread.sleep(5000);
          }catch(InterruptedException e){
              e.printStackTrace();
          }
          driver.quit();
      }
    
    }
  • 相关阅读:
    Aop 打印参数日志时,出现参数序列化异常。It is illegal to call this method if the current request is not in asynchron
    Nginx 配置反向代理ip
    springboot 的启动流程
    sqlserver 查看表死锁
    idea 中 下载源码:Sources not download for:
    sqlserver exists 与 in 的区别
    sqlserver case when 的使用方法
    Java项目启动时执行指定方法的几种方式
    使用多线程并获取执行结果
    nodejs实现一个文件存储服务
  • 原文地址:https://www.cnblogs.com/wangyinxu/p/6402271.html
Copyright © 2020-2023  润新知