selenium笔记

一、启动浏览器

1.设置驱动所在的位置:System.setProperty("webdriver.gecko.driver", ".\\tools\\geckodriver.exe");

             System.setProperty("webdriver.chrome.driver", ".\\tools\\chromedriver.exe");

             System.setProperty("webdriver.ie.driver", ".\\tools\\IEDriverServer.exe");

2.实例化浏览器驱动:WebDriver driver = new ChromeDriver() / FirefoxDriver() / InternetExplorerDriver();

3.打开网址:driver.get("网址");   \  driver.navigate().to("网址");

二、操作浏览器

1.后退:driver.navigate().back();

2.前进:driver.navigate().forward();

3.刷新:driver.navigate().refresh();

4.最大化:driver.manage().window().maximize();

5.设置浏览器大小:driver.manage().window().setSize(new Dimension(width,height));

6.获取当前网址:driver.getCurrenturl();

7.获取网页标题:driver.getTitle();

8.关闭浏览器:driver.close(); / driver.quit();

三、定位页面元素

1.通过id定位:driver.findElement(By.id("id值"));

2.通过name定位:driver.findElement(By.name("name值"));

3.通过链接的全部文字定位:driver.findElement(By.linkText("链接的全部文字"));

4.通过链接的部分文字定位:driver.findElement(By.partialLindkText("链接的部分文字"));

5.通过class定位:driver.findElement(By.className("class值"));

6.通过css定位:driver.findElement(By.cssSelector("css 定位表达式"));

7.通过xpath定位:driver.findElement(By.xpath("xpath 定位表达式"));

8.通过标签名定位:driver.findElement(By.tagName("标签名"));

四、常用的控件操作

1.输入框

  ①输入:sendKeys()

  ②点击:click()

  ③清空:clear()

  ④获取输入的文本:getAttribute("value")

2.嵌套框架跳转

  ①通过索引定位:driver.switchTo().frame(index);

  ②通过id、name:driver.switchTo().frame("name值 \ id值");

  ③通过定位元素定位语句:driver.switchTo().frame(元素定位语句);

  ④跳回默认框架:driver.switchTo().defaultContent();

  ⑤跳回上一级框架:driver.switchTo().parentFrame();

3.弹出框处理

  ①声明弹出框

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

  ②操作弹出框

    确认:alert.accept();

    取消:alert.accept();

    输入:alert.accept();

4.多个页面之间的切换

获取当前句柄:driver.getWindowHandle();

句柄:一个无序的字符串,有页面就有句柄

  ①获取所有页面句柄:List<String> handles = driver.getWindowHandles();

  ②循环判断找到要跳转的页面句柄:

    for(String handle:handles){

      driver.switchTo().window(handle);

      if("标题名字".equals(driver.getTitle())){//判断当前页面的标题是否与你要跳转的页面标题一样

        break;

      }

    }

五、WebDriver特殊操作

1.截图

  File file = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);

  绝对路径:FileUtils.copyFile(file,newFile("D:\\截图\\a.png"));

          FileUtils.copyFile(file,newFile("D:\\截图",a + ".png"));

  相对路径:FileUtils.copyFile(file,newFile("截图","a.png"));//截图为该工程根目录下的目录

2.下拉框

Select s = new Select(定位语句);

  ①通过索引:s.selectByIndex(索引);

  ②通过value值:s.selectByValue("value值");

  ③通过可见文本:selectByVisiableText("可见文本");

3.上传文件

driver.findElement(定位元素).sendKeys("文件所在位置");

4.时间等待

  ①线程等待:Tread.sleep(1000单位是毫秒);

  ②隐式等待:driver.manage().timeouts().implicitlyWait(10单位是秒,TimeUnit.SECONDS);//放在需要等待的语句前面

  ③显式等待:WebDriverWait wait = new WebDriverWait(driver, 10, 1);

六、模拟鼠标和键盘操作

1.Actions类

Actions action = new Actions(driver);

  ①左击:action.click(元素定位语句).perform();

  ②右击:action.contextclick(元素定位语句).perform();

  ③双击:action.doubleclick(元素定位语句).perform();

    如果没有写定位语句则在鼠标当前停留位置操作

  ④鼠标悬停:action.moveToElement(元素定位语句).perform();

  ⑤按下Shift键:action.keyDown(Keys.SHIFT);

  ⑥释放Shit键:action.keyUp(Keys.SHIFT);

  ⑦拖动元素:

拖动到指定位置:action.dragAndDropBy(元素,X坐标,Y坐标).build().perform();

拖动到某个元素上:action.dragAndDrop(被拖动元素,目标元素).perform();

2.键盘输入

定位输入框:WebElement a = driver.findElement(输入框定位);

  ①输入数据:a.sendKeys("数据");

  ②回删:a.sendKeys(Keys.BACK_SPACE);

  ③输入空格:a.sendKeys(Keys.SPACE);

  ④全选:a.sendKeys(Keys.CONTROL,"a");

  ⑤复制:a.sendKeys(Keys.CONTROL,"c");

  ⑥剪切:a.sendKeys(Keys.CONTROL,"x");

  ⑦粘贴:a.sendKeys(Keys.CONTROL,"v");

上一篇:C#等待SendKeys完成发送后再执行下一行代码吗?


下一篇:JS实现浏览器打印、打印预览