java 通过WebDriver模拟网页登录
maven依赖:
<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.9.1</version>
</dependency>
//1.模拟登录
/**
* 设置指定键对值的系统属性
*
* 参数:
* 第一个参数:系统属性的名称
* 第二个参数:系统属性的值
*
* 返回:
* 系统属性以前的值,如果没有以前的值,则返回 null
*
*/
System.setProperty("webdriver.chrome.driver", "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chromedriver.exe");
//ChromeOptions 是一个配置 chrome 启动时属性的类
ChromeOptions options = new ChromeOptions();
//无界面参数
options.addArguments("headless");
//禁用沙盒 就是被这个参数搞了一天
options.addArguments("no-sandbox");
//WebDriver
WebDriver driver = new ChromeDriver(options);
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
//登录页面请求链接
driver.get("XXXXXXXX");
Thread.sleep(2000);
//获取页面id元素
WebElement elemUsername = driver.findElement(By.id("nloginname"));
WebElement elemPassword = driver.findElement(By.id("npwd"));
WebElement btn = driver.findElement(By.id("nsubmit"));
//设置登录名
elemUsername.sendKeys("XXXXXX");
//设置密码
elemPassword.sendKeys("XXXXXX");
//触发登录按钮
btn.click();
//获取浏览器cookies
Set<Cookie> cookies = driver.manage().getCookies();
System.out.println(cookies);