Web自动化Demo-Go+Selenium

news2024/10/10 10:10:40

1.新建工程

使用GoLand新建工程如下:

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

go get -u github.com/tebeka/selenium

2.编写代码

package main

import (
	"fmt"
	"github.com/tebeka/selenium"
	"log"
	"time"
)

const (
	chromeDriverPath = "/opt/homebrew/bin/chromedriver"
	port             = 4444
)

func main() {
	var opts []selenium.ServiceOption
	service, 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.coloradmin.cn/o/2201708.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

视频生成的黎明:100+页干货全面探讨SORA类模型(T2VI2VV2V全包括)腾讯中科大

日前,腾讯AI Lab和中科大联合发布了100多页的类SORA模型研究报告,非常全面,很有学习和研究价值,今天和大家分享下,内容较多,可后台回复【类SORA报告】获取100多页pdf。 开源地址:https://ailab-…

函数信号发生器的直流偏置(OFFSET)旋钮的作用及操作方法

函数信号发生器(Function Generator)是电子工程师和技术人员在电路设计、测试和调试中常用的设备之一。它可以生成各种标准波形,如正弦波、方波、三角波等,以及用户自定义的任意波形。在众多参数设置中,直流偏置&#…

2025考研今天开始预报名!攻略请查收

2025年全国硕士研究生招生考试 今天起开始预报名 有什么流程?需要准备哪些信息? 这份考研报名攻略速查收 ↓↓↓ 全国硕士研究生招生考试报名包括网上报名和网上确认两个阶段: 网上预报名时间为10月9日至10月12日(每日9&#xff1…

电脑屏保设置教程 好看的电脑屏保应该怎么设置?

一、电脑自带的屏保设置,主题少,操作复杂; 你需要选择一个合适的屏保。在Windows系统中,你可以通过以下步骤找到合适的屏保: 右键点击桌面空白处,选择“个性化”; 在“个性化”设置中&#x…

win10家庭版配置ubantu20.04子系统

需要在本地配置一个环境去跑代码,代码的环境如下: 刚开始准备给电脑装一个双系统的,室友踩过坑告诉我安装wsl子系统就可以了,方便快捷~ 于是开始了摸索之旅!记录如下 (我刚开始以为一定要win10专业版&…

人才画像的重要性,如何打造精准人才画像?

人才画像在人力资源管理中占据重要地位,尤其是在人才招聘环节,它发挥着不可替代的作用,制定精准的人才画像有助于优化招聘和人力资源管理,从而提高组织竞争力和发展潜力。 一、人才画像的重要性 提高招聘精准度:精准…

考试系统之题目反馈

在现代教育体系中,考试不仅是检验学生学习成果的重要手段,也是教师评估教学效果、调整教学策略的关键环节。随着科技的飞速发展,传统的纸质考试逐渐被在线考试系统所取代,而题目反馈功能作为在线考试系统不可或缺的一部分&#xf…

电磁兼容(EMC):整改案例(五)EFT测试,改初级Y电容

目录 1. 异常现象 2. 原因分析 3. 整改方案 4. 总结 1. 异常现象 某产品按GB/T 17626.4标准进行电快速瞬变脉冲群测试,测试条件为:频率5kHz/100kHz,测试电压L,N线间2kV。其中频率5kHz时,测试通过,但频…

开源 AI 智能名片 O2O 商城小程序源码助力企业实现三层式个性化体验

摘要:本文探讨了在数字化时代,企业如何利用开源 AI 智能名片 O2O 商城小程序源码实现三层式个性化体验。通过分析数字化空间的定制化和个性化服务特点,以及实体经营中对人际互动的依赖,阐述了随着物联网和人工智能基础设施的开发&…

[Python] 使用Python自定义生成二维码

文章目录 目录 安装 qrcode 库生成简单的二维码代码讲解 生成自定义样式的二维码代码讲解 生成带有链接的二维码代码讲解 Demo代码实现代码讲解 总结 收录专栏: [Python] 二维码是现在非常常用的一种信息存储和传递方式,我们可以通过扫描二维码来快速获取文本、链接…

史上最全JLInk调试Kevil指南||一篇就够了||从菜鸟到调试大佬

目录 写在前面 问题1:jlink的port选项有SW和JTAG,这两个有什么区别,为什么大多数情况下选SW? 1.配置reset and run,下載即可重启 2.寄存器 问题2:keil中debug调试中会出现register和value,register中包括R0&#…

QT入门教程攻略 QT入门游戏设计:贪吃蛇实现 QT全攻略心得总结

Qt游戏设计:贪吃蛇 游戏简介 贪吃蛇是一款经典的休闲益智类游戏,玩家通过控制蛇的移动来吃掉地图上的食物,使蛇的身体变长。随着游戏的进行,蛇的移动速度会逐渐加快,难度也随之增加。当蛇撞到墙壁或自己的身体时&…

LLM详解

一 定义 Large Language Model,称大规模语言模型或者大型语言模型,是一种基于大量数据训练的统计语言模型,可用于生成和翻译文本和其他内容,以及执行其他自然语言处理任务(NLP),通常基于深度神…

verilog端口使用注意事项

下图存在组合逻辑反馈环,即组合逻辑的输出反馈到输入(赋值的左右2边存在相同的信号),此种情况会造成系统不稳定。比如在data_in20的情况下,在data_out0 时候,输出的数据会反馈到输入,输入再输出,从而造成不…

深度学习常见问题

1.YOLOV5和YOLOV8的区别 YOLOv5 和 YOLOv8 是两个版本的 YOLO(You Only Look Once)目标检测算法,它们在网络架构、性能优化、功能扩展等方面有显著的区别。YOLOv5 是 YOLO 系列的重要改进版本,而 YOLOv8 是最新的一次重大升级&am…

【C++网络编程】(一)Linux平台下TCP客户/服务端程序

文章目录 Linux平台下TCP客户/服务端程序服务端客户端相关头文件介绍 Linux平台下TCP客户/服务端程序 图片来源:https://subingwen.cn/linux/socket/ 下面实现一个Linux平台下TCP客户/服务端程序:客户端向服务器发送:“你好,服务…

大数据-159 Apache Kylin 构建Cube 准备和测试数据

点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…

AI会计师——让AI+成就价值财务

摘要:用友携手CCTV-10联合策划《AI会计师》专题节目 目录 Part1 数智化凭证采集 Part2 智能月结 Part3 税务风险管控 Part1 数智化凭证采集 AI会计师,源自对大数据、人工智能、云计算等前沿技术的深度融合。它不仅仅是一款软件,更是企业智能…

Java 17 数组最全解读篇(3w字图文并茂)

小熊学Java:https://www.javaxiaobear.cn,包含了海量的面试题和Java学习资料,是一个全能学习的站点,强烈推荐!!! 1. 数组的概述 1.1 为什么需要数组 需求分析1: 需要统计某公司50…

探索远程控制下载工具的奇妙世界

远程控制技术为我们的生活和工作带来了极大的便利。比如协助他人解决电脑问题、远程办公等等。今天我们一同来探讨向日葵远程控制下载软件和其他远程控制软件的奇妙世界。 1.向日葵远程控制 链接直通车:https://down.oray.com 想必很多人都听说过这款软件的卓越声…