【java 菜鸟自动化实践之六】selenium实操中,客户端启动chromediver小总结

背景:

来到新公司,搭建java selenium环境过程中,遇到原先不在意的坑(采用RemoteWebDriver远程执行用例时,无法启动chrome驱动(无法创建session),从而直观看到无法启动chrome浏览器(注:首先已排除chrome和chromediver对应版本问题)),却成了头痛的梗,为了拔掉这个梗,接下来总结了一下我的实践过程:

 

过程1:准备环境

windows 10

Jdk8(自行百度下载)

Idea 2019(自行百度下载)

Selenium 3.14.0相关依赖包(见maven部分)

selenium-server-standalone-2.53.0.jar(自行百度下载)

chrome  79.0.3945.88

chromedriver.exe(自行百度下载),且注意与浏览器对应版本

 

过程2、首先已排除chrome和chromediver对应版本问题

代码:

package main;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriverService;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;
import java.io.File;
import java.io.IOException;

public class runTest_chrome {
    public static void main(String[] args) throws IOException {
         System.setProperty( "webdriver.chrome.driver","D:\\selenium\\chromedriver.exe");
         WebDriver drivers = new ChromeDriver();
         drivers.manage().window().maximize();
         drivers.get( "http://www.baidu.com" );
   }
}
或
public class runTest_chrome {
    public static void main(String[] args) throws IOException {
           ChromeDriverService service=new ChromeDriverService.Builder().usingDriverExecutable(new File("D:\\selenium\\chromedriver.exe")).usingAnyFreePort().build();
           service.start();
           WebDriver drivers=new RemoteWebDriver(service.getUrl(), DesiredCapabilities.chrome());
           drivers.manage().window().maximize();
           drivers.get( "http://www.baidu.com");
    }
}

 

注:1、D:\\selenium\\chromedriver.exe,此处为驱动存放路径

       2、过程1无法达到远程启动浏览器,所以只能在本地运行浏览器执行

 

过程3:实施RemoteWebDriver远程启动浏览器(前提:过程2确定了不是chrome和chromedriver对应版本问题,在执行此过程操作)

步骤(1)、启动selenium-server

方法1:将chrome对应的chromedriver.exe驱动,存放到系统用户路径下(比如:C:\Users\zouxi路径下),原因:系统默认找系统用户下chrome驱动

java -jar D:\selenium\selenium-server-standalone-2.53.0.jar

方法2:将chrome对应的chromedriver.exe驱动,存放在指定路径下(比如:D:\selenium\chromedriver.exe),并在cmd执行jar包时,引用存放驱动路径即可

Java –jar D:\selenium\selenium-server-standalone -2.53.0.jar  -Dwebdriver.chrome.driver=D:\selenium\chromedriver.exe

 

注:不同版本selenium-server-standalone的jar包,不一定有-Dwebdriver.chrome.driver参数,建议在运行此jar包时,查看下帮助,比如Java –jar D:\selenium\ selenium-server-standalone -2.53.0.jar –h , 此前用selenium-server-standalone -3.14.0.jar运行时就报错,所以此处要稍微注意下。

 

步骤(2)、验证是否启动驱动:

1、启动selenium-server-standalone后,可以在浏览器中浏览地址http://127.0.0.1:4444/wd/hub,create session 中新建browser session,选择chrome,点击【ok】,创建成功,会弹出一个chrome浏览器页面,反之未启动chrome驱动

2、可到任务管理器中,查看chromediver进程是否存在,存在说明chrome驱动启动成功(建议用第1种方法验证)

 

注:1、如出现创建session成功,但未启动浏览器,可到任务管理器中,关闭conhost.exe和cmd进程,再按上述方法和验证方式重新执行即可

2、运行上述方法1和方法2时,有可能报端口占用,此时,可到任务管理器中,关闭java相关进程,再按上述方法和验证方式重新执行即可

3、启动selenium-server-standalone jar包时,可自行定义端口号,如需加端口号,在执行语句后面加 –port 端口号,比如:Java –jar D:\selenium\ selenium-server-standalone -2.53.0.jar –port 6666

步骤(3)、代码和执行:

public class runTest_chrome {
    public static void main(String[] args) throws IOException {
         WebDriver drivers = new RemoteWebDriver(new URL("http://远程ip:端口号/wd/hub"), 
         DesiredCapabilities.chrome());
         drivers.manage().window().maximize();
         drivers.get( "http://www.baidu.com" );
}

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值