学习selenium框架,写自动化脚本啦~

本文介绍了如何使用Java结合Selenium和Maven搭建Web自动化测试环境。首先配置了Maven的pom.xml文件,添加了Selenium的依赖。接着,下载与浏览器版本匹配的webdriver,并指定了其路径。然后,通过System.setProperty设置ChromeDriver路径,实例化WebDriver对象并进行浏览器操作,如访问网页、切换页面、最大化窗口。文章还提供了一个简单的示例,演示了如何在百度搜索框中输入关键词并执行搜索。最后,提到了线程休眠、元素定位和操作的方法,并强调了driver.quit()用于关闭浏览器和结束进程。
摘要由CSDN通过智能技术生成

web自动化(java+selenium+maven)

1.selenium环境搭建

我这里用jdk1.8和maven3.3.9
配置pom.xml文件

    //设置编码格式
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>
    //selenium依赖
    <dependencies>
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
            <version>3.14.0</version>
        </dependency>
    </dependencies>

下载webdriver,下载版本要和浏览器版本一致(去自己电脑浏览器设置里看版本号,只看第一位,比如我的112.0.1722.39,只需要看112,下112版本就行)
可以去selenium官网,但会比较慢!
建议去淘宝镜像下载,下载地址:https://npm.taobao.org/mirrors/
下载好了以后,在创建的maven项目下面创建一个新的文件夹DriverExe专门来放chromedriver.exe应用程序(后面要指定路径得时候,放在这里使用相对路径比较好)

2.实例化Webdriver对象

可能出现的报错:如果你本地环境变量中path配置过webdriver,那么会默认从你环境变量里的路径去找,版本和浏览器版本不一致就会报错。(我没配置)
我们现在需要做的是去配置一个环境变量,或者是使用system.property去指定一个环境变量。

   //启动ChromeDriver()
   System.setProperty("webdriver.chrome.driver","DriverExe\\chromedriver.exe");
   //向上转型
   WebDriver driver = new ChromeDriver();

3.简单写一个demo

   //访问网页
   driver.get("https://www.baidu.com");
   //添加线程休眠等待3秒
   Thread.sleep(3000);
   //访问网易云音乐
   driver.navigate().to("https://music.163.com");        
   Thread.sleep(3000);
   driver.navigate().back();
   //最大化浏览器窗口
   driver.manage().window().maximize();

此时后台打开了很多进程,需要用taskkill /f /im chromedriver.exe命令杀死chromedriver.exe进程

当然我们可以调用driver.quit()关闭浏览器,同时可以杀死进程。
driver.close()杀不死进程的。

4.模拟用户使用百度进行搜索的操作

public static void main(String[] args) throws InterruptedException {
        //启动ChromeDriver()
        System.setProperty("webdriver.chrome.driver","DriverExe\\chromedriver.exe");
        //向上转型
        WebDriver driver = new ChromeDriver();
        //访问网页
        driver.get("https://www.baidu.com");
        //添加线程休眠等待3秒
        Thread.sleep(1000);
        //最大化浏览器窗口
        driver.manage().window().maximize();
        Thread.sleep(1000);
        //1.输入框输入selenium
        WebElement searchInput = driver.findElement(By.cssSelector("#kw"));
        searchInput.sendKeys("selenium");
        Thread.sleep(1000);
        //2.提交搜索
        driver.findElement(By.cssSelector("#su")).click();
        Thread.sleep(3000);
        //3.清理搜索框,重新输入  Rose 进行搜索
        //此时的搜索框已经在上一次提交搜索的时候刷新过了,需要重新定位
        WebElement searchInput2 = driver.findElement(By.cssSelector("#kw"));
        searchInput2.clear();
        searchInput2.sendKeys("Rose");
        Thread.sleep(1000);
        driver.findElement(By.cssSelector("#su")).click();
        //3.断言验证
        

        Thread.sleep(3000);
        //关闭浏览器并杀死chrome进程
        driver.quit();

    }


注意点:
1.Thread.sleep()是为线程添加一个休眠时间,这里是为了方便看到效果。
2.编程思路:先去页面找对应的元素id,根据元素id定位元素,然后在进行相应的操作,我们一般在页面上的操作无非就是输入+清空删除+点击,那么我们在搜索框输入内容就用sendKeys(),点击就用click(),清空用clear(),这些方法idea会提示。想了解更多可以自己去看源码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值