自动化测试无法启动(java.net.SocketException)

embedded/2025/3/1 10:52:46/

在运行测试代码,对浏览器进行自动化操作时,遇到了以下问题,添加依赖,编写了测试代码,但是程序无法运行

这个有两种原因(我使用的是谷歌浏览器):

  1. 网络问题: 因为需要从GitHub上下载对应包,所以有时候可能会出现网络问题,这个时候可以打开VPN之后,重新对程序进行启动

  2. 浏览器版本过高,导致webdrivermanager中没有对应版本的驱动,此时可以改用 5.9.2及以上的版本重新尝试

如果以上方法都无法解决问题,就需要手动下载对应驱动 chrome依赖

因为原网站的问题,这个网址需要使用VPN来下载

或者从我的网盘下载:

链接: https://pan.baidu.com/s/13U2wgxHGhm7gL3quE_OaVQ?pwd=729b 提取码: 729b

但是记得查看自己的版本是否跟我一样

下载之后放入本地路径(要保证你能找到),路径中最好不要出现特殊字符(我直接将他放进了我的maven文件中)

然后更新代码

原代码:

java">public static void main(String[] args) throws InterruptedException {//驱动程序自动化WebDriverManager.chromedriver().setup();ChromeOptions options = new ChromeOptions();//允许访问所有连接options.addArguments("--remote-allow-origins=*");//设置完基础设置之后,就开始进行操作//1.打开对应的浏览器(首先要创建一个驱动对象)WebDriver webDriver = new ChromeDriver(options);Thread.sleep(5000);//2.输入对应网址,这里访问百度webDriver.get("https://www.baidu.com");Thread.sleep(5000);//3.找到输入框并进行搜索操作webDriver.findElement(By.xpath("//*[@id=\"kw\"]")).sendKeys("CSDN");Thread.sleep(5000);//4.找到搜索按钮webDriver.findElement(By.xpath("//*[@id=\"su\"]")).click();Thread.sleep(5000);//5.关闭浏览器webDriver.close();
}

新代码:

java">public static void main(String[] args) throws InterruptedException {//驱动程序自动化// 设置本地 ChromeDriver 路径System.setProperty("webdriver.chrome.driver", "设置本地 ChromeDriver 路径");ChromeOptions options = new ChromeOptions();//允许访问所有连接options.addArguments("--remote-allow-origins=*");//设置完基础设置之后,就开始进行操作//1.打开对应的浏览器(首先要创建一个驱动对象)WebDriver webDriver = new ChromeDriver(options);Thread.sleep(5000);//2.输入对应网址,这里访问百度webDriver.get("https://www.baidu.com");Thread.sleep(5000);//3.找到输入框并进行搜索操作webDriver.findElement(By.xpath("//*[@id=\"kw\"]")).sendKeys("CSDN");Thread.sleep(5000);//4.找到搜索按钮webDriver.findElement(By.xpath("//*[@id=\"su\"]")).click();Thread.sleep(5000);//5.关闭浏览器webDriver.close();
}

修改部分:

java">//原代码
//驱动程序自动化WebDriverManager.chromedriver().setup();//更新
// 设置本地 ChromeDriver 路径System.setProperty("webdriver.chrome.driver", "设置本地 ChromeDriver 路径");

运行成功:


http://www.ppmy.cn/embedded/169033.html

相关文章

Linux系统软件管理

systemctl 控制软件启动和关闭 Linux系统很多软件支持使用systemctl命令控制:启动,停止,开启自启。 能被systemctl管理的软件,一般被称为:服务。 语法:systemctl start|stop|status|enable|disable 服务名…

FFmpeg av_read_frame 和iOS系统提供的 AVAudioRecorder 实现音频录制的区别

1. 第一种方式:使用 FFmpeg 的 av_read_frame 特点 底层实现:基于 FFmpeg,这是一个强大的多媒体处理库,直接操作音频流。灵活性:非常灵活,可以处理多种音频格式、编解码器和输入设备。复杂性:需要手动管理音频流、数据包(AVPacket)、内存释放等,代码复杂度较高。跨平…

ChatGPT Deep Research:重塑智能研究的未来边界

目录 **ChatGPT Deep Research:重塑智能研究的未来边界****核心功能与技术突破****技术架构与性能优势****部署计划与用户价值****未来展望与挑战****结语**ChatGPT Deep Research:重塑智能研究的未来边界 引言 在人工智能技术飞速迭代的今天,OpenAI推出的Deep Research功能…

C++11相较于C++98的新特性介绍:列表初始化,右值引用与移动语义

一,列表初始化 1.1C98中传统的{} C98中一般数组和结构体可以使用{}进行初始化: struct Date {int _year;int _month;int _day; };int main() {int a[] { 1,2,3,4,5 };Date _date { 2025,2,27 };return 0; } 1.2C11中的{} C11以后想统一初始化方式&…

Redis 深度解析

Redis 是一个开源的、内存中的数据结构存储系统,它支持多种类型的数据结构,如字符串(strings)、哈希(hashes)、列表(lists)、集合(sets)、有序集合&#xff0…

【每日论文】Rank1: Test-Time Compute for Reranking in Information Retrieval

下载PDF或阅读论文,请点击:LlamaFactory - huggingface daily paper - 每日论文解读 | LlamaFactory | LlamaFactory 摘要 我们推出了Rank1,这是第一个旨在利用测试时计算能力的重排序模型。Rank1展示了在检索中利用推理语言模型&#xff08…

【第八节】C++设计模式(结构型模式)-Decorator(装饰器)模式

目录 一、问题引出 二、模式选择 三、代码实现 四、总结讨论 一、问题引出 装饰器模式:动态扩展对象功能的设计模式 在面向对象(OO)设计与开发中,我们常面临为已有类添加新职责的需求。传统方法是通过继承创建子类来实现功能扩…

MATLAB学习之旅:图像处理与计算机视觉应用

在前面的学习中,我们已经深入了解了MATLAB在数据建模与仿真方面的强大功能。从基础的数据处理到复杂的模型构建与仿真分析,MATLAB为我们提供了丰富的工具和函数,帮助我们解决各种实际问题。如今,我们将迈向下一个充满挑战与创新的…