Web自动化Demo-Go+Selenium

1.新建工程

使用GoLand新建工程如下:

打开终端输入如下命令安装Selenium

go get -u github.com/tebeka/selenium

2.编写代码

package mainimport ("fmt""github.com/tebeka/selenium""log""time"
)const (chromeDriverPath = "/opt/homebrew/bin/chromedriver"port             = 4444
)func main() {var opts []selenium.ServiceOptionservice, err := selenium.NewChromeDriverService(chromeDriverPath, port, opts...)if err != nil {log.Fatalf("Error starting the ChromeDriver server: %v", err)}defer func(service *selenium.Service) {err := service.Stop()if err != nil {log.Fatalf("Error to stop: %v", err)}}(service)caps := selenium.Capabilities{"browserName": "chrome",}wd, err := selenium.NewRemote(caps, fmt.Sprintf("http://localhost:%d/wd/hub", port))if err != nil {log.Fatalf("Error creating new WebDriver instance: %v", err)}defer func(wd selenium.WebDriver) {err := wd.Quit()if err != nil {log.Fatalf("Error to quit: %v", err)}}(wd)err = wd.Get("https://www.baidu.com")if err != nil {log.Fatalf("Failed to load page: %s\n", err)}time.Sleep(3 * time.Second)searchBox, err := wd.FindElement(selenium.ByID, "kw")if err != nil {log.Fatalf("Failed to find search input box: %s\n", err)}err = searchBox.SendKeys("Hello")if err != nil {log.Fatalf("Failed to send keys to search input box: %s\n", err)}searchButton, err := wd.FindElement(selenium.ByID, "su")if err != nil {log.Fatalf("Failed to find search button: %s\n", err)}err = searchButton.Click()time.Sleep(3 * time.Second)
}

然后执行main函数即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/446689.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【AUTOSAR 基础软件】ComM模块详解(通信管理)

文章包含了AUTOSAR基础软件(BSW)中ComM模块相关的内容详解。本文从AUTOSAR规范解析,ISOLAR-AB配置以及模块相关代码分析三个维度来帮读者清晰的认识和了解ComM这一基础软件模块。文中涉及的ISOLAR-AB配置以及模块相关代码都是依托于ETAS提供的…

2025选题推荐|基于微信小程序的高校就业招聘系统

作者简介:Java领域优质创作者、CSDN博客专家 、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、多年校企合作经验,被多个学校常年聘为校外企业导师,指导学生毕业设计并参与学生毕业答辩指导,…

MFC框架制作的exe,当界面增加或者删除组件后,需要如何修改Dlg.cpp?

使用Microsoft Foundation Classes(MFC)框架制作的应用程序中,当界面中增加或删除组件后,需要对Dlg.cpp文件进行相应的修改,以确保程序能够正确地初始化和管理这些组件。 1. 更新资源文件 (.rc) 首先,确保你…

Elasticsearch学习笔记(六)使用集群令牌将新加点加入集群

随着业务的增长,陆续会有新的节点需要加入集群。当我们在集群中的某个节点上使用命令生成令牌时会出现报错信息。 # 生成令牌 /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s node出现报错信息: Unable to create enrollment…

【React】使用脚手架或Vite包两种方式创建react项目

1.使用脚手架搭建React项目: 在终端窗口运行如下命令即可: npx create-react-app react-basic(创建的文件目录) npx:Node.js工具命令,用于查找并执行后续的包命令。 2.使用Vite包创建React项目: 在终端窗口运行如…

Redis集群相关

目录 一、Redis主从集群 主从数据同步原理 全量同步 1)为什么是基本一致而不是完全一致呢? 2)上述过程还有一个问题,怎么判断是不是第一次同步? 增量同步 1)master节点怎么知道slave节点与自己的数据…

初学者如何快速入门人工智能

一、引言 人工智能(Artificial Intelligence,简称AI),作为当今科技领域极具前景与影响力的方向之一,吸引着众多人士投身其中。无论是对科技充满好奇的学生,还是意图拓展职业发展路径的职场人士&#xff0c…

STM32 USB CUBEMX

开发背景 使用的平台:STM32H750 注意事项 时钟必须是48MHZ,其它都不行 2. 将默认任务的堆栈设大一点 如果使用操作系统,USB任务跑在默认任务里,因此需要设置默认任务的堆栈缓存是直接定义的全局变量,需要设置编译器…

Spring Boot常见错误与解决方法

White graces:个人主页 🙉专栏推荐:Java入门知识🙉 ⛳️点赞 ☀️收藏⭐️关注💬卑微小博主🙏 ⛳️点赞 ☀️收藏⭐️关注💬卑微小博主🙏 目录 创建第一个SpringBoot项目 SpringBoot项目各个…

基于神经协同过滤(Neural Collaborative Filtering,NCF)的算法

论文题目:Neural Collaborative Filtering∗ 论文地址:https://arxiv.org/abs/1708.05031 今天我要分享一篇关于深度学习在推荐系统中应用的经典论文,题为“基于神经协同过滤(Neural Collaborative Filtering,NCF&…

如何去除背景音乐保留人声?保留人声,消除杂音

在日常生活和工作中,我们经常遇到需要处理音频的情况,尤其是当我们想要去除背景音乐,仅保留人声时。这种需求在处理电影片段、制作音乐MV、或者提取演讲内容等场景中尤为常见。本文将为您详细介绍如何去除背景音乐并保留人声,帮助…

组合式API有什么好处

什么是组合式API? 组合式 API (Composition API) 是一系列 API (响应式API、生命周期钩子、依赖注入)的集合。它不是函数式编程,组合式 API 是以 Vue 中数据可变的、细粒度的响应性系统为基础的,而函数式编程通常强调…

论文笔记:Prototypical Verbalizer for Prompt-based Few-shot Tuning

论文来源:ACL 2022 论文地址:https://arxiv.org/pdf/2203.09770.pdfhttps://arxiv.org/pdf/2203.09770.pdf 论文代码:https://github.com/thunlp/OpenPrompthttps://github.com/thunlp/OpenPrompt Abstract 基于提示的预训练语言模型&#…

数据结构——遍历二叉树

目录 什么是遍历二叉树 根据遍历序列确定二叉树 例题(根据先序中序以及后序中序求二叉树) 遍历的算法实现 先序遍历 中序遍历 后序遍历 遍历算法的分析 二叉树的层次遍历 二叉树遍历算法的应用 二叉树的建立 复制二叉树 计算二叉树深度 计算二…

VR全景摄影的拍摄和编辑软件推荐

随着虚拟现实技术的不断进步,VR全景摄影逐渐成为商业、娱乐和教育等多个领域中的重要工具。通过专业的设备与软件,摄影师能够创作出沉浸式的360度全景作品,为观众提供身临其境的视觉体验。在这篇文章中,我们将介绍VR全景摄影的相关…

(接口测试)day01接口测试理论 http理论 接口测试流程 接口文档解析

一.接口测试理论 1.接口和接口测试 服务器为客户端开了一个验证接口(接口本质:函数方法)客户端向服务器传送的消息可以相当于函数的参数,接口是用来让客户端传递数据的 接口:相当于开了一个通道 当服务器要给客户端响…

yjs机器学习常见算法01——KNN(K—近邻算法)

1.K—近邻算法 的含义: 简单来说就是通过你的邻居的“类别”,来推测你的“类别” 定义:如果一个样本在特征空间中的k个最相似(即特征空间中最临近)的样本中大多数属于某一类别,则该样本也属于这个类别。 2.…

猫头虎分享:什么是 ChatGPT 4o Canvas?

猫头虎是谁? 大家好,我是 猫头虎,猫头虎技术团队创始人,也被大家称为猫哥。我目前是COC北京城市开发者社区主理人、COC西安城市开发者社区主理人,以及云原生开发者社区主理人,在多个技术领域如云原生、前端…

独家创作YOLOv8韭菜检测系统(可以重新训练,yolov8模型,从图像、视频和摄像头三种路径识别检测)

1.简介:资源包含可视化的韭菜检测系统,可检测图片和视频当中出现的韭菜,以及自动开启摄像头,进行韭菜检测。基于最新的YOLO-v8训练的韭菜检测模型和完整的python代码以及韭菜的训练数据,下载后即可运行。 2.文件夹介绍…

怎么找矩阵系统,怎么源码搭建,源头技术开发需要哪些支持

一、引言 在进行矩阵系统源码搭建时,选择合适的工具至关重要。正确的工具选择不仅可以提高开发效率,还能确保系统的稳定性、可扩展性和性能。本文将探讨在矩阵系统源码搭建过程中如何选择合适的工具。 二、前端开发工具选择 前端框架 React:由…