使用java操作浏览器的工具selenium-java和webdriver下载地址

简介: 【10月更文挑战第12天】Selenium-java依赖包用于自动化Web测试,版本为3.141.59。ChromeDriver和EdgeDriver分别用于控制Chrome和Edge浏览器,需确保版本与浏览器匹配。示例代码展示了如何使用Selenium-java模拟登录CSDN,包括设置驱动路径、添加Cookies和获取页面源码。

selenium-java依赖包下载

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

下载chromeDriver

注意:chromeDriver与chrome版本有关,如果版本不一致会发生错误。
下载chromeDriver:

http://chromedriver.storage.googleapis.com/index.html
https://getwebdriver.com/chromedriver#stable

下载时一定要看清版本

下载EdgeDriver

https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/

使用selenium-java模拟登录csdn伪代码

   public static void chrome()  throws InterruptedException{
   
        System.setProperty("webdriver.chrome.driver", "D:\\webdriver\\chromedriver.exe");
        ChromeDriverService service = ChromeDriverService.createDefaultService();
        ChromeOptions options = new ChromeOptions();
        //options.setHeadless(true);
        ChromeDriver webDriver = new ChromeDriver(service,options);
        webDriver.get("https://mp.csdn.net");
        TimeUnit.SECONDS.sleep(1);
        String cookieValue = "uuid_tt_dd=10_30613105130-1714273041354-134792;.......";
       // ((JavascriptExecutor) webDriver).executeScript("document.cookie='" + cookieValue+"'");
        String[] cookies = cookieValue.split(";");
        for (String cookie: cookies) {
   
            String[] split = cookie.split("=");
            //if(split[0].equals("UserToken")){
   
                webDriver.manage().addCookie(new Cookie(split[0].trim(),split[1].trim(),".csdn.net","/",null));
            //}

        }
        TimeUnit.SECONDS.sleep(1);
        Set<Cookie> cookies1 = webDriver.manage().getCookies();
        for (Cookie cookie: cookies1) {
   
            System.out.println(cookie);
        }
        //webDriver.navigate().refresh();
        webDriver.get("https://mp.csdn.net");

        TimeUnit.SECONDS.sleep(3);
        String pageSource = webDriver.getPageSource();
        //System.out.println(pageSource);
        System.out.println("over....");
        //webDriver.close();
        //webDriver.quit();
    }
相关文章
|
6天前
|
监控 Java 测试技术
Java开发现在比较缺少什么工具?
【10月更文挑战第15天】Java开发现在比较缺少什么工具?
22 1
|
19天前
|
Java 流计算
Flink-03 Flink Java 3分钟上手 Stream 给 Flink-02 DataStreamSource Socket写一个测试的工具!
Flink-03 Flink Java 3分钟上手 Stream 给 Flink-02 DataStreamSource Socket写一个测试的工具!
32 1
Flink-03 Flink Java 3分钟上手 Stream 给 Flink-02 DataStreamSource Socket写一个测试的工具!
|
12天前
|
小程序 Oracle Java
JVM知识体系学习一:JVM了解基础、java编译后class文件的类结构详解,class分析工具 javap 和 jclasslib 的使用
这篇文章是关于JVM基础知识的介绍,包括JVM的跨平台和跨语言特性、Class文件格式的详细解析,以及如何使用javap和jclasslib工具来分析Class文件。
25 0
JVM知识体系学习一:JVM了解基础、java编译后class文件的类结构详解,class分析工具 javap 和 jclasslib 的使用
|
13天前
|
Java C++
做了个Java打包工具,可以双击启动了!
本文介绍了作者日常使用Java和Swing进行开发的经验,以及Java程序分发时遇到的问题,如需要JRE环境。文中列举了几种常见的Java程序打包方法,并对比了各自的优缺点,最后作者结合这些方案,利用Winform开发了一款工具,将Java程序打包成二进制可执行文件,简化了分发流程。
做了个Java打包工具,可以双击启动了!
|
14天前
|
数据可视化 算法 Java
JAVA规则引擎工具
本文介绍了六款常用的Java规则引擎:Drools、IBM ODM、Easy Rules、jBPM、OpenL Tablets 和 Apache Camel。每款引擎都有其独特的特点和适用场景,如Drools的高效规则匹配、IBM ODM的Web界面管理、Easy Rules的轻量级特性、jBPM的流程管理、OpenL Tablets的Excel规则定义以及Apache Camel的路由和规则结合。选择合适的规则引擎可以显著提高系统的灵活性和可维护性。
|
2天前
|
Java API 调度
Java中的多线程编程:理解与实践
本文旨在为读者提供对Java多线程编程的深入理解,包括其基本概念、实现方式以及常见问题的解决方案。通过阅读本文,读者将能够掌握Java多线程编程的核心知识,提高自己在并发编程方面的技能。
|
1天前
|
Java 开发者
在Java多线程编程中,创建线程的方法有两种:继承Thread类和实现Runnable接口
【10月更文挑战第20天】在Java多线程编程中,创建线程的方法有两种:继承Thread类和实现Runnable接口。本文揭示了这两种方式的微妙差异和潜在陷阱,帮助你更好地理解和选择适合项目需求的线程创建方式。
7 3
|
1天前
|
Java 开发者
在Java多线程编程中,选择合适的线程创建方法至关重要
【10月更文挑战第20天】在Java多线程编程中,选择合适的线程创建方法至关重要。本文通过案例分析,探讨了继承Thread类和实现Runnable接口两种方法的优缺点及适用场景,帮助开发者做出明智的选择。
6 2
|
1天前
|
Java
在Java多线程编程中,实现Runnable接口通常优于继承Thread类
【10月更文挑战第20天】在Java多线程编程中,实现Runnable接口通常优于继承Thread类。原因包括:1) Java只支持单继承,实现接口不受此限制;2) Runnable接口便于代码复用和线程池管理;3) 分离任务与线程,提高灵活性。因此,实现Runnable接口是更佳选择。
8 2