1.测试前准备
下载Selenium
下载驱动(以谷歌浏览器为例) 挑选与你当前谷歌浏览对应版本
查看浏览器的版本
Windows平台下载 win32那个 其他系统类推
2.新建项目
结构 将两个文件复制粘贴进去
Selenium.jar 需要build path 一下才能使用
熟悉一下操作浏览器的代码
package com.yang.demo;
import static org.junit.Assert.assertEquals;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class LaunchChrome {
public static void main(String[] args) throws InterruptedException {
// 加载驱动
System.setProperty("webdriver.chrome.driver", ".\\tools\\chromedriver.exe");
// 初始化
WebDriver driver = new ChromeDriver();
// 打开网址
driver.get("https://www.baidu.com/s?wd=%E7%99%BE%E5%BA%A6%E7%83%AD%E6%90%9C&sa=ire_dl_gh_logo_texing&rsv_dl=igh_logo_pcs");
// 最大化
driver.manage().window().maximize();
// 获取窗口的大小
System.out.println(driver.manage().window().getSize());
// 全屏
driver.manage().window().fullscreen();
// 睡眠
Thread.sleep(2000);
// 转向
driver.navigate().to("https://www.baidu.com/");
// 后退
driver.navigate().back();
// 前进
driver.navigate().forward();
// 刷新
driver.navigate().refresh();
// 得到标题
System.out.println(driver.getTitle());
// 得到网页源码
// System.out.println(driver.getPageSource());
// 得到当前url
System.out.println(driver.getCurrentUrl());
// 断言测试
// assertEquals(driver.getCurrentUrl(),"www.baidu.com");
System.out.println("通过");
// 关闭一个标签页
// driver.close();
// 关闭所有标签页 直接退出浏览器
// driver.quit();
//页面加载超时等待
driver.manage().timeouts().pageLoadTimeout(10, TimeUnit.SECONDS);
//页面元素加载超时
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
}
}
定位元素
package com.yang.demo; import java.util.List; import org.openqa.selenium.By; import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; public class FindElements { public static void main(String[] args) throws InterruptedException { // 加载驱动 System.setProperty("webdriver.chrome.driver", ".\\tools\\chromedriver.exe"); // 初始化创建浏览器实例 WebDriver driver = new ChromeDriver(); // driver.get("http://news.cyol.com/node_60799.htm"); //方法一 通过id查找 sendKeys("")输入 // driver.findElement(By.id("kw")).sendKeys("test1"); driver.manage().window().maximize(); // driver.findElement(By.id("su")).click(); //方法二 by xpath // driver.findElement(By.xpath("//*[@id=\"kw\"]")).sendKeys("test2"); // Thread.sleep(3000); //方法三 linktext // driver.findElement(By.linkText("新闻")).click(); //方法四通过class寻找 className不能有空格 // driver.findElement(By.className("s_ipt")).sendKeys("test3"); // driver.findElement(By.className("btn self-btn bg s_btn")).click(); 无效 //方法五by name // driver.findElement(By.name("kw")).sendKeys("test5"); // id classname 都可以 //方法六By.patrtiallinktext 局部文字链接,链接文字太长,可以选择其中一部分文字 // driver.findElement(By.partialLinkText("海南")).click(); //方法7 By.cssSelector // driver.findElement(By.xpath("//*[@id=\"kw\"]")).sendKeys("bilibili"); // driver.findElement(By.cssSelector("#su")).click(); // List<WebElement> list=driver.findElements(By.xpath("//*[@id=\"s-top-left\"]")); // for(WebElement element:list) { // System.out.print(element.getText()+" "); // } // for(int i=0;i<list.size();i++) { // System.out.print(list.get(i).getText()+" "); // } //处理竖向滚动条 将driver转成js执行实例 // JavascriptExecutor js=(JavascriptExecutor)driver; // js.executeScript("window.scrollTo(0,1000)");高度:0px滚动到1000px // js.executeScript("window.scrollTo(0,document.body.scrollHeight)");//滚动到底部 //单选按钮和多选按钮的处理 //*[@id="div4"]/div[2]/div[1]/div // driver.findElement(By.xpath("//*[@id=\"div3\"]/div[2]/div[2]/div")).click(); driver.get("https://www.wjx.cn/m/2792226.aspx/"); List<WebElement> list=driver.findElements(By.xpath("/html/body/form/div[5]/div[3]/fieldset/div[5]/div[2]")); for(WebElement element:list) { element.click(); } // 处理弹窗 // driver.get("http://news.cyol.com/node_60799.htm"); // driver.switchTo().alert().accept(); //关闭弹窗 } }