自动化测试 selenium 环境配置之浏览器驱动webdriver

设置浏览器驱动

手动创建一个存放浏览器驱动的目录,如: C:\driver , 将下载的浏览器驱动文件(例如:chromedriver、geckodriver)丢到该目录下。

我的电脑–>属性–>系统设置–>高级–>环境变量–>系统变量–>Path,将“C:\driver”目录添加到Path的值中。

;C:\driver

设置浏览器驱动

验证不同的浏览器驱动是否正常使用

import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.edge.EdgeDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.openqa.selenium.opera.OperaDriver;
import org.openqa.selenium.phantomjs.PhantomJSDriver;

WebDriver driver = new ChromeDriver();    //Chrome浏览器

WebDriver driver = new FirefoxDriver();   //Firefox浏览器

WebDriver driver = new EdgeDriver();      //Edge浏览器

WebDriver driver = new InternetExplorerDriver();  // Internet Explorer浏览器

WebDriver driver = new OperaDriver();     //Opera浏览器

WebDriver driver = new PhantomJSDriver();   //PhantomJS

版本问题

部分浏览器当浏览器版本和驱动的版本不一致时会出现类似这种错误。

检查并比对浏览器的版本是否和驱动的版本一致。

例如我装了http://chromedriver.storage.googleapis.com/85.0.4183.38/ 但我的浏览器 Google Chrome 是 84.0.4147.125 的版本 就会出现像下面的错误。去重新下载了http://chromedriver.storage.googleapis.com/84.0.4147.30/ 实测可成功运行。

remote stacktrace: Backtrace:
    Ordinal0 [0x00BC5F73+2449267]
    Ordinal0 [0x00AF8361+1606497]
    Ordinal0 [0x009EF969+522601]
    Ordinal0 [0x009805F3+67059]
    Ordinal0 [0x0097CD92+52626]
    Ordinal0 [0x0099C127+180519]
    Ordinal0 [0x0099BF2D+180013]
    Ordinal0 [0x00999E5B+171611]
    Ordinal0 [0x00981DD8+73176]
    Ordinal0 [0x00982E50+77392]
    Ordinal0 [0x00982DE9+77289]
    Ordinal0 [0x00B0D8D7+1693911]
    GetHandleVerifier [0x00C64036+522726]
    GetHandleVerifier [0x00C63D74+522020]
    GetHandleVerifier [0x00C79187+609079]
    GetHandleVerifier [0x00C648A6+524886]
    Ordinal0 [0x00B05CBC+1662140]
    Ordinal0 [0x00B0F23B+1700411]
    Ordinal0 [0x00B0F3A3+1700771]
    Ordinal0 [0x00B25215+1790485]
    BaseThreadInitThunk [0x754E0419+25]
    RtlGetAppContainerNamedObjectPath [0x771066DD+237]
    RtlGetAppContainerNamedObjectPath [0x771066AD+189]
 
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
    at org.openqa.selenium.remote.W3CHandshakeResponse.lambda$errorHandler$0(W3CHandshakeResponse.java:62)
    at org.openqa.selenium.remote.HandshakeResponse.lambda$getResponseFunction$0(HandshakeResponse.java:30)
    at org.openqa.selenium.remote.ProtocolHandshake.lambda$createSession$0(ProtocolHandshake.java:126)
    at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
    at java.base/java.util.Spliterators$ArraySpliterator.tryAdvance(Spliterators.java:958)
    at java.base/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:127)
    at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:502)
    at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:488)
    at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
    at java.base/java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:150)
    at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
    at java.base/java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:543)
    at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:128)
    at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:74)
    at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:136)
    at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:83)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:552)
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:213)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:131)
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:181)
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:168)
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:157)
    at com.artup.pdf.handler.TextEditHandler.DOMToImage(TextEditHandler.java:527)
    at com.artup.pdf.handler.TextEditHandler.buildTextEdit(TextEditHandler.java:117)
    at com.artup.pdf.service.generator.PDFGeneratorService.createPDF(PDFGeneratorService.java:261)
    at com.artup.pdf.service.generator.PDFGeneratorService.createPDF(PDFGeneratorService.java:1423)
    at com.artup.pdf.service.generator.PDFGeneratorService.createPDFProxy(PDFGeneratorService.java:1292)
    at com.artup.pdf.service.generator.PDFGeneratorService$$FastClassBySpringCGLIB$$93f4dc27.invoke(<generated>)
    at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
    at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:771)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
    at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749)
    at org.springframework.aop.interceptor.AsyncExecutionInterceptor.lambda$invoke$0(AsyncExecutionInterceptor.java:115)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:834)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值