java使用Selenium操作谷歌浏览器学习笔记(二)
使用WebDriver操作浏览器之前必须设置对应的driver
System.setProperty("webdriver.chrome.driver", "D:\\New folder\\chromedriver_win32/chromedriver.exe");
使用WebDriver访问网页并获取网页源代码
import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; public class Test { public static void main(String[] args) { System.setProperty("webdriver.chrome.driver", "D:\\New folder\\chromedriver_win32/chromedriver.exe"); WebDriver webDriver = new ChromeDriver(); try { String url = "https://www.baidu.com"; webDriver.get(url);
String page = webDriver.getPageSource(); System.out.println(page); }finally { // webDriver.close(); } } }
运行代码后,会自动打开一个浏览器并根据url跳转,然后在控制台打印出网页的以源代码(可能杂乱不堪)
获取网页元素
//在全局中查找元素 List<WebElement> inputList = webDriver.findElements(By.tagName("input")); List<WebElement> buttonList = webDriver.findElements(By.tagName("button")); WebElement element = webDriver.findElement(By.id("element")); //在某个元素中查找子元素 WebElement bb = element.findElement(By.id("element1")); List<WebElement> element2 = element.findElements(By.id("element2"));
对元素进行操作
// 输入账号和密码登录 String zhanghao = "zhanghao"; String mima = "mima"; WebElement account = inputList.get(0);//获取账号输入框 WebElement password = inputList.get(1);//获取密码输入框 // account.sendKeys(zhanghao);//表示在框中输入该内容 password.sendKeys(mima); // WebElement submit = buttonList.get(0); submit.click();//点击登录按钮
清除网页cookie
有时候可能需要用多个账号登录同一个网站,但是谷歌浏览器默认会保存cookie,可能下次登录不会出现登录页面,而是直接以上个账号登上系统
这时候就需要清除cookie。当然也可以直接设置谷歌浏览器不报存cookie
private static void getCookie(String url){ WebDriver webDriver = new ChromeDriver(); webDriver.get(url); Set<Cookie> cookieSet = webDriver.manage().getCookies(); for (Cookie cooke : cookieSet) { } System.out.println("获取cookie成功"); webDriver.manage().deleteAllCookies(); webDriver.close(); }