• Selenium轻松入门!


    目录

     一、Selenium简介

          二、Selenium组成

    1)Selenium IDE:

    2)Selenium RC:

    3)Selenium WebDriver(重点):     

    4)Selenium grid:

     三、Selenium特点

     四、案例演示

         4.1 java爬虫入门

         1.下载驱动包

         2.创建项目并导入依赖

     4.3.入门

     4.2 相关API

        1.元素选择方式

         1)Class选择:driver.findElement(By.className("s_ipt"));


     一、Selenium简介

         Selenium是一个用于Web应用程序自动化测试工具Selenium测试直接运行在浏览器中,就像真正的用户在
     操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。
     适用于自动化测试js动态爬虫破解反爬虫)等领域。

         
     二、Selenium组成

    1)Selenium IDE

    嵌入到Firefox浏览器中的一个插件,实现简单的浏览器操作录制与回放功能,主要用于快速创建BUG及重现脚本,可转化为多种语言。

    2)Selenium RC

    核心组件,支持多种不同语言编写自动化测试脚本,通过其服务器作为代理服务器去访问应用,达到测试的目的。

    3)Selenium WebDriver(重点):     

    一个浏览器自动化框架,它接受命令并将它们发送到浏览器。它是通过特定于浏览器的驱动程序实现的。它直接与浏览器通信并对其进行控制。Selenium WebDriver支持各种编程语言,如Java、C# 、PHP、Python、Perl、Ruby

    4)Selenium grid

    测试辅助工具,用于做分布式测试,可以并行执行多个测试任务,提升测试效率。

     三、Selenium特点

         1)开源、免费
         2)多浏览器支持:FireFox、Chrome、IE、Opera、Edge;
         3)多平台支持:Linux、Windows、MAC;
         4)多语言支持:Java、Python、Ruby、C#、JavaScript、C++;
         5)对Web页面有良好的支持;
         6)简单(API 简单)、灵活(用开发语言驱动);
         7)支持分布式测试用例执行。

     四、案例演示

     爬虫:数据采集、数据清晰、数据分析!!!

         4.1 java爬虫入门

         1.下载驱动包

         http://chromedriver.storage.googleapis.com/index.html

     

     

    下载解压

     

         2.创建项目并导入依赖

         
            org.seleniumhq.selenium
            selenium-java
            3.141.59
         

     3.入门

         //设置驱动
         System.setProperty("webdriver.chrome.driver","D:\\chromedriver.exe");
         //创建驱动
         WebDriver driver=new ChromeDriver();
         //与将要爬取的网站建立连接
         driver.get("https://www.baidu.com");
         //关闭浏览器
         driver.close();
         //释放资源
         driver.quit();

     

     

     4.2 相关API

        1.元素选择方式


         1)Class选择driver.findElement(By.className("s_ipt"));

    1. package com.chenchen.demo;
    2. import org.openqa.selenium.By;
    3. import org.openqa.selenium.WebDriver;
    4. import org.openqa.selenium.WebElement;
    5. import org.openqa.selenium.chrome.ChromeDriver;
    6. /**
    7. * @author 杨总
    8. * @create 2022-09-29 09:50
    9. */
    10. public class Demo1 {
    11. public static void main(String[] args) {
    12. //设置驱动
    13. System.setProperty("webdriver.chrome.driver","D:\\chromedriver.exe");
    14. //创建驱动
    15. WebDriver driver=new ChromeDriver();
    16. //与将要爬取的网站建立连接
    17. driver.get("https://www.baidu.com");
    18. // 1)Class选择:driver.findElement(By.className("s_ipt"));
    19. // 通过类选择器拿到被控制的页面的按钮元素
    20. WebElement s_btn = driver.findElement(By.className("s_btn"));
    21. System.out.println(s_btn.getAttribute("id"));
    22. System.out.println(s_btn.getAttribute("value"));
    23. }
    24. }

     2)ID选择:   driver.findElement(By.id("kw"));

    1. 2)ID选择: driver.findElement(By.id("kw"));
    2. WebElement su = driver.findElement(By.id("su"));
    3. System.out.println(su.getAttribute("class"));

     

       3)name选择 driver.findElement(By.name("wd"));

     

    1. // 3)name选择: driver.findElement(By.name("wd"));
    2. System.out.println(driver.findElement(By.name("rqlang")).getAttribute("value"));

      4)tag选择:  driver.findElements(By.tagName("input"));

    1. // 获取到百度首页所有点击链接
    2. List eles = driver.findElements(By.tagName("a"));
    3. for (WebElement ele : eles) {
    4. // ele:指的是单个A标签
    5. String text=ele.getText();
    6. if(text!=null&&!"".equals(text.trim()))
    7. System.out.println(text);
    8. }

    5)link选择 driver.findElement(By.linkText("地图"));

    1. // 通过链接文字获取链接元素、模拟点击该链接
    2. driver.findElement(By.linkText("地图")).click();

     自动点击跳转百度地图:

     6)Partial link选择(a标签文本内容模糊匹配):

                    driver.findElement(By.partialLinkText("使用百度"));

    1. // 通过3获取所有包含3的链接地址
    2. List eles = driver.findElement(By.partialLinkText("3"));
    3. for (WebElement ele:eles){
    4. System.out.println(ele.getText());
    5. }

       7)css选择器:driver.findElement(By.cssSelector("#kw"));

    1. //        通过CSS选择器获取页面元素
    2.         WebElement ele = driver.findElement(By.cssSelector("#kw"));
    3.         System.out.println(ele.getText());

         8)xpath选择:driver.findElement(By.xpath("//*[@id=\"kw\"]"));
     

    1. WebElement ele = driver.findElement(By.xpath("//*[@id=\"kw\"]"));
    2. System.out.println(ele.getText());
    1. //拿到百度首页的input输入框
    2. WebElement search_input = driver.findElement(By.xpath("//*[@id=\"kw\"]"));
    3. // 往 输入框 输入搜索关键字
    4. search_input.sendKeys("禁止收敛URL");
    5. // 模拟等待
    6. Thread.sleep(3000);
    7. // 获取百度一下的点击按钮
    8. driver.findElement(By.id("su")).click();

    2.获取单个元素:driver.findElement
    3.获取多个元素:driver.findElements
    4.输入内容:input.sendKeys("java");
    5.元素点击:element.click();
    6.获取元素属性:nextPageEle.getAttribute("class")
    7.获取标签文本内容:titleEle.getText()

     

  • 相关阅读:
    win11安装mysql-8.0.28
    第07章 InnoDB数据存储结构
    问 ChatGPT 关于GPT的事情:压缩篇
    【力扣hot100】刷题笔记Day16
    11.14 知识总结(视图层、模层板)
    Linux “挂载” 的概念
    如何将文件名批量导入excel?
    如何将LLM 集成到自动化生产系统
    GLSL加载图片的流程
    从0到1构建react完整项目2022最新无坑版
  • 原文地址:https://blog.csdn.net/m0_67094505/article/details/127100440