webdriverAPI详解

    xiaoxiao2021-03-25  83

    1 webdriver中WebDriver类

    package cn.caogao; import java.util.Iterator; import java.util.List; import java.util.Set; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; public class Demo1 { public static void main(String[] args) { // TODO Auto-generated method stub String url_1="http://www.baidu.com"; String url_2="http://www.sogou.com"; WebDriver driver=new FirefoxDriver(); driver.get(url_1); WebElement element= driver.findElement(By.id("kw")); element.sendKeys("中国"); System.out.println("-----------------------------------分割线------------------------------------"); List<WebElement> elements=driver.findElements(By.tagName("a"));   for(WebElement e:elements) { System.out.println(e.getText()); /* * 百度首页设置登录新闻贴吧知道音乐图片视频地图文库更多» * */ } System.out.println("-----------------------------------分割线------------------------------------"); System.out.println(driver.getCurrentUrl());         // https://www.baidu.com/ System.out.println("-----------------------------------分割线------------------------------------"); //System.out.println(driver.getPageSource());        //返回页面代码 System.out.println("-----------------------------------分割线------------------------------------"); System.out.println(driver.getTitle());  //百度一下,你就知道 System.out.println("-----------------------------------分割线------------------------------------"); System.out.println(driver.getWindowHandle());      //{daf895e9-34f2-4e36-91f7-23a857a43498} System.out.println("-----------------------------------分割线------------------------------------"); Set<String> set=driver.getWindowHandles();   Iterator<String> it=set.iterator(); while(it.hasNext()) { System.out.println(it.next());      //{daf895e9-34f2-4e36-91f7-23a857a43498} } } } WebDriver中的方法: void get(String)  通过该方法访问要访问的网页,  String通常为网址   findElement(By)    通过该方法获取页面元素  例如通过id、name、xpath等,返回WebElement  findElements(By)   通过该方法获取页面某一类元素,例如:标签名   返回List集合 driver.getCurrentUrl()    返回当前页的网址   返回String getPageSource()  返回页面Html代码  返回String getTitle()    返回页面标题   String getWindowHandle()   返回如上例,看不懂。。。。。 getWindowHandles()  如上。。。。 manage() 返回类型Optionsnavigate()   返回类型NavigationswitchTo()   返回类型  TagetLocator

    2 常用场景

      1  打开浏览器,访问网址(如上例)

      2  页面元素定位

    package cn.caogao; import java.util.List; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; public class Demo2 { public static void main(String[] args) {   String url_1="http://www.baidu.com"; WebDriver driver=new FirefoxDriver();         driver.get(url_1); // WebElement element= driver.findElement(By.id("kw")); // element.sendKeys("zhongguo"); // WebElement e=driver.findElement(By.linkText("新闻")); // System.out.println(e.getTagName()); // e.click(); // WebElement e=driver.findElement(By.name("tj_trnuomi")); // e.click(); // List<WebElement> e=driver.findElements(By.partialLinkText("百度")); // for(WebElement element:e) //         { // System.out.println(element.getText());   //把百度设为主页关于百度百度推广使用百度前必读 // } // List<WebElement> e=driver.findElements(By.tagName("a")); // System.out.println(e.get(0).getTagName());         WebElement e=driver.findElement(By.xpath("//input[@id='kw']")); e.sendKeys("中国"); driver.findElement(By.id("su")).click(); } } 常用获取页面元素的方法如上例,通过id(“kw”)、、linkText("新闻")、name("tj_trnuomi")、partialLinkText("百度")、tagName("a")、xpath("//input[@id='kw']") 还可以通过CSS定位,常用方法By.cssSelector(selector)、By.className(className);在此不做详解

    3  单击按钮(如上例所示)

    使用click()方法

    4  双击某个元素

      

    转载请注明原文地址: https://ju.6miu.com/read-39357.html

    最新回复(0)