1、依赖

<dependency><groupId>org.seleniumhq.selenium</groupId><artifactId>selenium-java</artifactId><version>3.141.59</version>
</dependency>

依赖版本一定要和maven导入的驱动版本一致。

就是说,你导入的依赖包版本为3.141.59时,你所使用的的驱动器导入maven的jar包也应该为3.141.59。

如果你导入依赖版本为:

此时maven管理器里面的驱动器版本可能为:

此时,系统将会报找不到浏览器驱动的错误。

如下:

2、正文代码

import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.interactions.Actions;import java.io.IOException;
import java.util.List;public class Driver {public static void main(String[] args) throws InterruptedException, IOException {//隐藏窗口ChromeOptions chromeOptions = new ChromeOptions();chromeOptions.addArguments("--headless","--disable-gpu");//设置选用的浏览器驱动System.setProperty("webdriver.chrome.driver","D:\\chromeDriver\\chromedriver.exe");ChromeDriver driver = new ChromeDriver(chromeOptions);//选择需要登录的访问地址driver.get("https://mail.qq.com");// 切换到登录页面所在的内容driver.switchTo().frame("login_frame");//选择账号密码登录driver.findElement(By.id("switcher_plogin")).click();//输入账号driver.findElement(By.id("u")).click();driver.findElement(By.id("u")).clear();driver.findElement(By.id("u")).sendKeys("***qq账号****");//输入密码driver.findElement(By.id("p")).click();driver.findElement(By.id("p")).clear();driver.findElement(By.id("p")).sendKeys("****qq密码*****");//点击登录按钮driver.findElement(By.id("login_button")).click();Thread.sleep(10000);//跳转到收件箱driver.findElement(By.id("folder_1")).click();driver.switchTo().frame("mainFrame");String page = driver.findElement(By.className("right")).getText();int start = page.indexOf("/");int end = page.indexOf(" ");String substring = page.substring(start + 1, end);int sum = Integer.parseInt(substring);//遍历总的页数for (int k = 0 ; k < sum ; k++){//获取当前页所有的邮件条数对象List<WebElement> elementsByCssSelector = driver.findElements(By.cssSelector(".toarea .F, .toarea .M"));//遍历当前页的所有邮for (WebElement webElement : elementsByCssSelector){String text = webElement.getText();System.out.println(text);//查找关键字段
//                if (text.contains("江南")){if (true){//创建鼠标右键点击事件Actions action = new Actions(driver);action.contextClick(webElement).perform();//获取所有的右键弹窗菜单(针对某条邮件)List<WebElement> elements = driver.findElements(By.cssSelector(".menu_item"));//点击创建新的窗口(针对某条邮件)elements.get(1).click();//获取窗口个数String[] handles = new String[driver.getWindowHandles().size()];driver.getWindowHandles().toArray(handles);//选择跳转到邮件详情窗口driver.switchTo().window(handles[1]);Thread.sleep(3000);//切换到邮件详情内容driver.switchTo().frame("mainFrame");//邮件的主题String subject = driver.findElement(By.id("subject")).getText();System.out.println("标题:"+subject);//获取邮件的发件人信息String userEmail = driver.findElement(By.id("tipFromAddr_readmail")).getText();System.out.println("发件人:"+userEmail);//获取邮件的正文内容String mailContentContainer = driver.findElement(By.id("mailContentContainer")).getText();System.out.println("邮件正文:\n"+mailContentContainer);//关闭当前的窗口driver.close();//转到收件箱页面driver.switchTo().window(handles[0]);driver.switchTo().frame("mainFrame");}}//只有sum-1的页面上存在“下一页按钮”if ( k < sum-1){//执行跳转下一页driver.findElement(By.id("nextpage")).click();}}//当转为exe文件后,阻止黑窗口关闭System.in.read();}
}

java+selenium 获取QQ邮箱所有邮件列表信息以及某个邮件信息(springboot)相关推荐

  1. Java+Selenium实现QQ邮箱自动登录、发邮件与退出

    初学selenium,用最近所学知识写了QQ邮箱自动登录.发送邮件.退出,算是对自己学习的知识的巩固吧.如果哪里有不足之处,就请各位告诉我,指导我一下,非常感谢. 登录页面 在网页登录QQ邮箱的时候, ...

  2. java读取qq邮箱_java获取qq邮箱中的好友列表

    评论 # re: java获取qq邮箱中的好友列表 2009-05-07 20:56 咖啡@可乐 # re: java获取qq邮箱中的好友列表 2009-05-08 09:07 EverestSnow ...

  3. java实现通过QQ邮箱发送激活邮件 springBoot

    用户邮件激活 通过QQ邮箱发送激活邮件 soringBoot 本文主要介绍了使用java 调用邮箱发送邮件的功能 首先新建一个springboot项目 pom依赖如下 <parent>&l ...

  4. JAVA代码给QQ邮箱发邮件

    通过java代码给qq邮箱发邮件 使用发送邮箱所需要2个jar包 activation.jar    mail.jar 下载链接:https://pan.baidu.com/s/1YA3jgmUNzW ...

  5. Java mail使用QQ邮箱发送邮件配置方案

    Java mail使用QQ邮箱发送邮件配置方案 java mail配置了QQ邮箱作为服务器发送邮件,结果导致出现503异常: Authentication failed; nested excepti ...

  6. selenium登录QQ邮箱(附带滑动解锁)

    前言 最近因为工作需要 用selenium做了一个QQ邮箱的爬虫(登录时部分帐号要滑动解锁),先简单记录一下. 这个问题先可以分为两个部分:1.登录帐号和2.滑动解锁.python版本3.5.4 问题 ...

  7. Py的smtplib应用:如何获取QQ邮箱授权码(附源代码)

    Py的smtplib应用:如何获取QQ邮箱授权码(附源代码) 在Python开发中,发送邮件是非常常见的一项任务.smtplib是Python自带的邮件发送库,通过它可以轻松地实现邮件发送功能.本文将 ...

  8. 如何获取QQ邮箱授权码?

    什么是QQ邮箱授权码? 授权码是QQ邮箱推出的,用于登录第三方客户端的专用密码 如果你想用Python发送QQ邮箱,你就需要用到QQ邮箱授权码! 它适用于登录以下服务:POP3/IMAP/SMTP/E ...

  9. 如何获取QQ邮箱授权码——步骤详解

    获取QQ邮箱授权码步骤详解 1.打开QQ邮箱,进入邮箱账户设置界面 下滑当前界面,显示到邮箱服务区域,选择自己需要开启的协议服务 或点击下方提示中的生成授权码 点击开启,显示验证密保弹窗,根据提示进行 ...

最新文章

  1. C语言下标要求数组或指针,c语言改错 error C2109: 下标要求数组或指针类型怎么改?...
  2. [python] 从GPS坐标获取国家名
  3. LeetCode Increasing Triplet Subsequence(动态规划)
  4. 综述 | 知识图谱发展概述
  5. Spring Boot 定时任务
  6. 被LTRIM(RTRIM())害死了,差点
  7. Harris的角点检测和特征匹配
  8. 程序员详解iOS的原生和第三方虚拟内存机制
  9. 教你做Android逆向
  10. 数据库系统概论——期末重点复习
  11. 最牛逼的java代码_分享史上java最牛逼 最简短的代码-Go语言中文社区
  12. 四阶龙格库塔方程(Rungekutta)解二阶常微分方程组并计算船舶在迎浪下的纵摇埀荡耦合运动方程-附Matlab代码
  13. word文档图片画红线_在Word中巧妙绘制漂亮分割线的方法
  14. class.forName
  15. 将数字转化为千分位形式
  16. Java 异常(Exceptions)
  17. mysql dparser.dll_dparser.dll,下载,简介,描述,修复,等相关问题一站搞定_DLL之家
  18. Chapter21: Consideration in the Application of Artificial Intelligence to Pharmacokinetic Prediction
  19. 告别2022,喜迎2023
  20. 生产实习——DAY1

热门文章

  1. 帆软报错11300001
  2. Porter Stemmer详解版
  3. 关键数据结构 -- sk_buff
  4. 完美解决,抖音高清直播,解决服务升级中,功能暂不可用!
  5. ti processor sdk linux am335x evm /bin/create-sdcard.sh hacking
  6. 机器翻译书籍、教材推荐 ——《机器翻译:基础与模型》肖桐 朱靖波 著
  7. 前端常见面试题:CSS3动画知道吗?怎么实现的?
  8. 【烽火集训】新员工第一周学习总结
  9. linux 不小心删掉网卡配置文件的mac地址 如何恢复,linux/Centos下查看和修改网卡Mac地址(ifconfig命令)...
  10. 电子与通信工程与计算机考研哪个好,计算机,通信工程,电子哪个专业研究生出国比较容..._考研_帮考网...