selenium自动化 java开发入门使用

需求:抓取某网站数据,通过selenium自动化来获取

selenium官网:https://www.selenium.dev/zh-cn/

selenium是一个兼容多语言的插件工具,使用python的多一些,这次是使用java来开发自动化,需要有一些了解一些前端html标签和js技术

我的开发环境:springboot +idea+ChromeDriver+selenium

环境准备:

      所需要的pom依赖

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.8.9</version>
        </dependency>
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-remote-driver</artifactId>
            <version>3.141.59</version>
        </dependency>
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
            <version>3.141.59</version>
        </dependency>
        <dependency>
            <groupId>org.jsoup</groupId>
            <artifactId>jsoup</artifactId>
            <version>1.12.1</version>
        </dependency>
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-api</artifactId>
            <version>3.141.59</version>
        </dependency>

  ChromeDriver:通过chrome的自动代理框架控制浏览器

下载地址:http://chromedriver.storage.googleapis.com/index.html (无需FQ)

注:ChromeDriver的下载需要和你电脑已有的chrome版本保持一致,WebDriver其实有很多,包括其他的浏览器,selenium官网提供了下载地址:https://www.selenium.dev/documentation/webdriver/getting_started/install_drivers/

 以chromeDriver为例来测试selenium

抓取元素实例:

 java代码:

public static void main(String[] args) {
//设置ChromeDriver的路径
System.setProperty("webdriver.chrome.driver", "/Users/reid/selenium-java/chromedriver");
WebDriver webDriver = new ChromeDriver();
//需要打开的网站地址
webDriver.get("https://xxx.xxx.gov.cn/xxxxxxxx/#/search/medical");
//以class抓取标签,当class不是唯一值时要通过webDriver.findElements来获取
List<WebElement> weblist = webDriver.findElements(By.className(".cell.el-tooltip"));
for (WebElement webElement : webLiList) {
String text = webElement.getText();
System.out.printlh(text);
}
webDriver.close();
webDriver.quit();
}

   By对象的操作:注:当html标签class属性值中有空格的时候需要通过点的方式分割,切勿直接使用空格 以上面java代码为例绿色部分

  By.className("") 通过class获取标签

 By.cssSelector("") 通过css选择器获取标签
 By.tagName("") 通过标签名获取
 By.id("") 通过id获取
 By.xpath("") 通过xpath语句获取
  
xpath的语法操作方式:https://www.runoob.com/xpath/xpath-syntax.html
posted @ 2022-02-21 10:44  始终不过一场繁华  阅读(725)  评论(0)    收藏  举报