selenium + ChromeDriver

    Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。而对于爬虫来说,使用Selenium操控浏览器来爬取网上的数据那么肯定是爬虫中的杀手武器。这里,我将介绍selenium + 谷歌浏览器的一般使用。首先会介绍如何安装部署环境,然后贴出一些本人所使用的一些方法,最后给出github地址,供大家下载。

1. selenium 环境配置

selenium 官网地址:http://www.seleniumhq.org/download/
导入 selenium 的 jar 包有多种方式,这里介绍两个:  
第一种是直接下载,然后将下载中的 jar 包复制到eclipse或者idea中,然后添加即可
   
第二种是使用maven
 

2. 下载github代码并且进行测试

谷歌浏览使用的版本是:60.0.3112.78,这里注意,谷歌浏览器和谷歌驱动需要匹配。具体可以见: http://blog.csdn.net/llbacyal/article/details/78563992
 idea使用的版本是:2016.12
Java使用的版本是:1.8
  • 首先在github上下载代码,地址为:https://github.com/lunaMoon1010/SeleniumDemo
  • 导入项目 
1、解压后,使用idea导入该项目
2、选择刚刚解压的项目
 3、让maven导入jar包,maven简单来说是一个jar包管理插件,通过配置的方式在maven仓库下载你所需要的jar包
  • 运行代码进行测试
1、测试HelloWorld,方法里面具体的内容请到方法里面查看,注释都是有写的
/**
     * 用来测试第一个代码,访问百度
     */
    @Test
    public void testHelloWorld() throws Exception {
        //开启个浏览器并且输入链接
        WebDriver driver = PageUtils.getChromeDriver("https://www.baidu.com/");
        //得到浏览器的标题
        System.out.println(driver.getTitle());
        Thread.sleep(5000);
        //关闭浏览器 下面是关闭所有标签页,还有一个代码是 driver.close();, 关闭当前标签页
        driver.quit();
    }
如果你运行出现下图情况,说明你环境上没有问题了
2、测试自动输入
 /**
     * 测试向input标签输入值
     */
    @Test
    public void testInputStrByJS(){
        //开启个浏览器并且输入链接
        WebDriver driver = PageUtils.getChromeDriver("https://www.baidu.com/");
        //向input输入值
        PageUtils.inputStrByJS(driver, "kw", "月之暗面 博客园");
    }
如果出现下面情况说明你测试成功了
3、测试点击
/**
     * 测试点击
     */
    @Test
    public void testScrollToElementAndClick() throws Exception {
        //1、开启个浏览器并且输入链接
        WebDriver driver = PageUtils.getChromeDriver("https://www.baidu.com/");

        //2、向百度输入框输入需要查询的值
        PageUtils.inputStrByJS(driver, "kw", "月之暗面 博客园");

        //3、得到百度一下的标签
        WebElement submitElement = driver.findElement(By.cssSelector("input#su"));

        //4、点击百度一下
        PageUtils.scrollToElementAndClick(submitElement, driver);

        //休息3秒,加载数据
        Thread.sleep(3000);

        //5、首先找到 id 为 content_left 的 div 下面的所有 div
        List<WebElement> divElements = driver.findElements(By.cssSelector("div#content_left div"));
        //6、找到搜索的第一个链接
        WebElement aElement = divElements.get(0).findElement(By.cssSelector("div.f13 a[href]"));

        //7、点击该链接
        PageUtils.scrollToElementAndClick(aElement, driver);
    }
如果出现下面情况,说明测试成功了
 4、测试标签页切换
/**
     * 测试切换到另一个标签页
     */
    @Test
    public void testGetAnotherPage() throws Exception {
        //1、开启个浏览器并且输入链接
        WebDriver driver = PageUtils.getChromeDriver("https://www.baidu.com/");

        //2、向百度输入框输入需要查询的值
        PageUtils.inputStrByJS(driver, "kw", "月之暗面 博客园");

        //3、得到百度一下的标签
        WebElement submitElement = driver.findElement(By.cssSelector("input#su"));

        //4、点击百度一下
        PageUtils.scrollToElementAndClick(submitElement, driver);

        //休息3秒,加载数据
        Thread.sleep(3000);

        //5、首先找到 id 为 content_left 的 div 下面的所有 div
        List<WebElement> divElements = driver.findElements(By.cssSelector("div#content_left div"));
        //6、找到搜索的第一个链接
        WebElement aElement = divElements.get(0).findElement(By.cssSelector("div.f13 a[href]"));

        //7、点击该链接
        PageUtils.scrollToElementAndClick(aElement, driver);

        //8、当前页面时百度的页面
        //将浏览器对象强制转为可以执行js的对象
        System.out.println("现在的页面是:"+driver.getTitle());
        //9、切换到博客园页面
        PageUtils.getAnotherPage(driver);
        //将浏览器对象强制转为可以执行js的对象
        System.out.println("现在的页面是:"+driver.getTitle());
    }
如果出现下面的情况说明你测试成功了


3.总结
Selenium是一个用于Web应用程序测试的工具。但是也可以用来做爬虫,如果需要得到对应的数据,可以通过 element.getText()的方法得到,element的类型是WebElement。期间可能会有很多错误,但是希望大家能够通过度娘,谷歌等方式一一解决。本人因为能力有限,有不足或错误之处,希望能够被指出。
最后再次填上这个的代码地址:https://github.com/lunaMoon1010/SeleniumDemo
如果要详细怎么使用请访问:http://www.webdriver.org/nav1/
Selenium是一个用于Web应用程序测试的自动化工具。它允许你编写脚本来模拟用户的行为,如点击、输入、导航等。结合ChromeDriverSelenium可以控制Chrome浏览器的各种操作,包括模拟键盘快捷键操作。 在Selenium中模拟CTRL+F查找操作通常分为以下步骤: 1. 打开目标网页。 2. 等待页面加载完成。 3. 触发CTRL+F快捷键查找操作。 4. 输入查找内容并获取搜索结果。 以下是一个使用Python语言和Selenium实现CTRL+F查找操作的代码示例: ```python from selenium import webdriver from selenium.webdriver.common.keys import Keys from selenium.webdriver.common.action_chains import ActionChains # 启动Chrome浏览器 driver = webdriver.Chrome() # 打开目标网页 driver.get("http://example.com") # 等待页面加载完成 driver.implicitly_wait(10) # 触发CTRL+F快捷键 # 首先需要定位到浏览器中的搜索框,通常是页面的一个可编辑元素 # 然后使用ActionChains类模拟按键操作 search_box = driver.find_element_by_name('q') # 这里的'name'属性根据实际页面搜索框的name属性值来定位 ActionChains(driver).key_down(Keys.CONTROL).send_keys('f').key_up(Keys.CONTROL).perform() # 输入查找内容 search_box.send_keys('需要查找的文本') # 如果需要进一步操作搜索结果,可能需要编写额外的逻辑代码 ``` 请注意,上述代码只是一个基础示例,实际使用时需要根据目标网站的具体情况来调整代码中的元素定位和逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值