selenium-java web自动化测试工具抓取百度搜索结果实例

 🔥 交流讨论:欢迎加入我们一起学习!

🔥 资源分享耗时200+小时精选的「软件测试」资料包

🔥 教程推荐:火遍全网的《软件测试》教程  

📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!

selenium-java web自动化测试工具抓取百度搜索结果实例

这种方式抓百度的搜索关键字结果非常容易
抓长尾关键词,根据热门关键词去抓更多内容可以用
抓google,百度的这种内容容易给屏蔽,用这种就不会了


1.新建maven项目,引入selenium-java

<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
            <version>3.8.1</version>
        </dependency>

2.写代码(因为自动化测试速度极快,每个步骤后都稍微停顿了下方便看效果)

复制代码

package com.testselenium;

import java.util.concurrent.TimeUnit;

import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
    
public class AutoTest {
    
    public static void main(String[] args) throws Exception {
//        谷歌浏览器的驱动下载地址:https://chromedriver.storage.googleapis.com/index.html
//        最新稳定版下载地址:https://chromedriver.storage.googleapis.com/index.html?path=2.40/
        System.setProperty("webdriver.chrome.driver", "D://selenium/chromedriver.exe");
        WebDriver webDriver = new ChromeDriver();
//        火狐浏览器的驱动下载地址:https://github.com/mozilla/geckodriver/releases
//        System.setProperty("webdriver.gecko.driver", "D://selenium/geckodriver.exe");
//        WebDriver webDriver = new FirefoxFilter();
        
//        webDriver.manage().window().maximize();    
//        webDriver.manage().deleteAllCookies();
        // 与浏览器同步非常重要,必须等待浏览器加载完毕
        webDriver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
        
        //打开目标地址
        webDriver.get("https://www.baidu.com");
        
        Thread.sleep(1000);
        /*
//      webDriver.findElement(By.xpath("/html/body/div/div[1]/a")).click();
//      webDriver.findElement(By.cssSelector("html body div#app div.loginPage form.el-form.fromBox button.el-button.loginBtn")).click();
        webDriver.findElement(By.cssSelector(".head_wrapper > div#u1 > a:nth-child(1)")).click();
        Thread.sleep(1000);
        webDriver.findElements(By.className("a3")).forEach(x -> {
            System.out.println(x.getText());
        });
        */
        //输入关键字搜索
        webDriver.findElement(By.cssSelector("input#kw")).sendKeys("java");
        webDriver.findElement(By.cssSelector("input#su")).click();
        Thread.sleep(1000);
        webDriver.findElements(By.className("t")).forEach(x -> {
            System.out.println(x.getText());
        });
        
      //暂停5秒钟后关闭
        Thread.sleep(5000);
//        webDriver.quit();
        
        //跳转到我的博客
        Thread.sleep(3000);
        webDriver.get("https://www.cnblogs.com/zdz807");
        
        Thread.sleep(1000);
        //打开标题为 下一页
        webDriver.findElement(By.partialLinkText("下一页")).click();
        
        Thread.sleep(1000);
        //移动到底部
        //((JavascriptExecutor) webDriver).executeScript("window.scrollTo(0, document.body.scrollHeight)");
        //移动到指定的坐标(相对当前的坐标移动)  
        ((JavascriptExecutor) webDriver).executeScript("window.scrollBy(0, 700)");  
        Thread.sleep(1000);
        //移动到窗口绝对位置坐标,如下移动到纵坐标1600像素位置  
        ((JavascriptExecutor) webDriver).executeScript("window.scrollTo(0, 1600)");  
        Thread.sleep(1000);
        //移动到指定元素,且元素底部和窗口底部对齐 
        ((JavascriptExecutor) webDriver).executeScript("arguments[0].scrollIntoView(false);", webDriver.findElement(By.cssSelector("#ftCon")));
        
        //暂停5秒钟后关闭
        Thread.sleep(5000);
        webDriver.quit();
        
    }
}

复制代码

 

最后我邀请你进入我们的【软件测试学习交流群:785128166】, 大家可以一起探讨交流软件测试,共同学习软件测试技术、面试等软件测试方方面面,还会有免费直播课,收获更多测试技巧,我们一起进阶Python自动化测试/测试开发,走向高薪之路

作为一个软件测试的过来人,我想尽自己最大的努力,帮助每一个伙伴都能顺利找到工作。所以我整理了下面这份资源,现在免费分享给大家,有需要的小伙伴可以关注【公众号:程序员二黑】自提!

  • 19
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值