selenium操作谷歌浏览器,驱动使用最新版113版本,启动程序报403解决方式

最近我将谷歌浏览器更新到最新版本【113.0.5672.127】,那么我们平时敲代码或者干测试的朋友知道,我们selenium的操作驱动版本也得提升到对应的,不然操作不了,但是我今天将两者都升级到最新版本后,启动程序依旧启动不了,为了解决该问题特有此博客产出,这里是java的解决办法,python的将对应内容放进去就行;

1、谷歌版本:

2、报错内容; 

Starting ChromeDriver 113.0.5672.63 (0e1a4471d5ae5bf128b1bd8f4d627c8cbd55f70c-refs/branch-heads/5672@{#912}) on port 58348
Only local connections are allowed.
Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.
ChromeDriver was started successfully.
[1684831558.261][WARNING]: Deprecated chrome option is ignored: useAutomationExtension
[1684831558.261][WARNING]: Deprecated chrome option is ignored: useAutomationExtension
5月 23, 2023 4:45:58 下午 org.openqa.selenium.remote.ProtocolHandshake createSession
信息: Detected upstream dialect: W3C
5月 23, 2023 4:45:59 下午 org.openqa.selenium.remote.http.WebSocket$Listener onError
警告: Invalid Status code=403 text=Forbidden
java.io.IOException: Invalid Status code=403 text=Forbidden
	at org.asynchttpclient.netty.handler.WebSocketHandler.abort(WebSocketHandler.java:92)
	at org.asynchttpclient.netty.handler.WebSocketHandler.handleRead(WebSocketHandler.java:118)
	at org.asynchttpclient.netty.handler.AsyncHttpClientHandler.channelRead(AsyncHttpClientHandler.java:78)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436)
	at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:327)
	at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:314)
	at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:435)
	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:279)
	at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)
	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:722)
	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:658)
	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:584)
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:496)
	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
	at java.base/java.lang.Thread.run(Thread.java:834)

Exception in thread "main" org.openqa.selenium.remote.http.ConnectionFailedException: Unable to establish websocket connection to http://localhost:51445/devtools/browser/3d768ac7-b01d-45e8-8f93-9398fb81522b
Build info: version: '4.4.0', revision: 'e5c75ed026a'
System info: host: 'XIAOXIAO', ip: '192.168.137.1', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '11.0.2'
Driver info: driver.version: ChromeDriver
	at org.openqa.selenium.remote.http.netty.NettyWebSocket.<init>(NettyWebSocket.java:102)
	at org.openqa.selenium.remote.http.netty.NettyWebSocket.lambda$create$3(NettyWebSocket.java:128)
	at org.openqa.selenium.remote.http.netty.NettyClient.openSocket(NettyClient.java:106)
	at org.openqa.selenium.devtools.Connection.<init>(Connection.java:77)
	at org.openqa.selenium.chromium.ChromiumDriver.lambda$new$2(ChromiumDriver.java:116)
	at java.base/java.util.Optional.map(Optional.java:265)
	at org.openqa.selenium.chromium.ChromiumDriver.<init>(ChromiumDriver.java:114)
	at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:81)
	at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:70)
	at util.WebDriverUtils.getNormalWebDriver(WebDriverUtils.java:61)
	at gongjiYouzi.GongJi.main(GongJi.java:22)

Process finished with exit code 1

3、解决办法:

我们操作之前,都需要先获取到WebDriver对象,所以我们需要在创建 ChromeOptions 设置参数的时候加上下面的代码即可:    

options.addArguments("--remote-allow-origins=*");

4、整合后的代码:

         //1、参数设置,无头模式
        ChromeOptions options = new ChromeOptions();
        //2、隐藏 navigator.webdriver
        options.addArguments("--disable-blink-features=AutomationControlled");

        //1、1解决403错误
        options.addArguments("--remote-allow-origins=*");

        //3、关闭左上方Chrome 正受到自动测试软件的控制的提示
        options.setExperimentalOption("useAutomationExtension", false);
        WebDriver driver = new ChromeDriver(options);

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: 这个信息的意思是需要将“chromedriver”可执行文件添加到系统的路径中,才能够成功执行相关操作。可以参考网站https://chromedriver.chromium.org/home了解更多相关信息。 ### 回答2: 这个message的意思是提示你需要在PATH路径中添加chromedriver可执行文件。chromedriver是一个用于自动化Selenium测试的驱动程序,它需要与Chrome浏览器一起使用,通过控制Chrome浏览器,实现模拟用户操作浏览器的过程,从而进行自动化测试。 为了让chromedriver正常工作,我们需要将其添加到系统的PATH路径中,从而让系统能够找到这个可执行文件。具体的方法如下: 1.下载并安装Chrome浏览器,确保Chrome浏览器的版本chromedriver兼容。可以在https://chromedriver.chromium.org/downloads中找到与你Chrome浏览器版本匹配的chromedriver版本。 2.将下载的chromedriver文件解压缩到本地磁盘上一个合适的位置,并记录下其路径。 3.将chromedriver所在的目录添加到系统的PATH路径中。具体操作步骤如下: 1)在Windows系统中,可以按Win键+R组合键,调出运行窗口,输入sysdm.cpl,然后按回车键。在打开的“系统属性”对话框中选择“高级”选项卡,点击“环境变量”按钮。 2)在“环境变量”对话框中,找到系统变量中的“Path”变量,点击“编辑”按钮。 3)在“编辑环境变量”对话框中,点击“新建”按钮,将chromedriver所在的目录添加进去。 4)确认添加成功后,关闭所有对话框。 4.重新打开命令行窗口,在命令行中输入“chromedriver”命令,查看是否成功添加了chromedriver。 以上就是对于message: 'chromedriver' executable needs to be in path. please see https://chromedriver.chromium.org/home的详细回答。需要注意的是,以上步骤适用于Windows系统。如果是其他系统,可以参考官网提供的文档进行操作。 ### 回答3: 这个错误信息是由于未能在系统的环境变量中正确设置ChromeDriver的路径所引起的。ChromeDriver是一个与Google Chrome浏览器结合使用驱动程序,它可以控制浏览器,以便自动化测试和web开发等任务能够顺利进行。 要解决这个错误,我们需要将ChromeDriver的可执行文件路径添加到系统的环境变量中。首先,我们需要在官网下载最新版本的ChromeDriver。然后,我们需要将其解压并将其中的可执行文件(chromedriver.exe)转移到某个通用的位置,例如C:\Windows 或C:\Windows\System32。接下来,我们需要将该位置添加到系统的环境变量中,以便操作系统能够找到它。 在Windows系统上,我们可以按以下步骤设置环境变量: 1. 点击“开始”菜单,右键单击“计算机”,然后选择“属性”; 2. 点击“高级系统设置”; 3. 在“高级”选项卡下,点击“环境变量”; 4. 在“系统变量”列表中找到“Path”变量,并双击它; 5. 在弹出的“编辑环境变量”窗口中,点击“新建”; 6. 输入ChromeDriver可执行文件所在的路径(例如C:\Windows\System32); 7. 点击“确定”关闭窗口。 现在,当我们再次使用ChromeDriver运行测试时,这个错误就不会再次出现了。这种方式不仅可以解决这个问题,也为我们提供了方便和灵活的ChromeDriver执行路径设置方式

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值