#自学习# 记一次py脚本打开浏览器页面

        在项目总结中,遇到系统后台利用浏览器拉起一个已知路径页面的需求,趁着机会整理下。实现起来比较简单,浏览器默认谷歌。

一、技术原理

        Selenium:Selenium 是一个用于自动化 Web 浏览器的工具,可模拟用户在浏览器中的各种操作,如点击、输入、提交表单等。通过 Selenium,可编写 Python 脚本控制浏览器行为;

        WebDriver:WebDriver 是 Selenium 中用于控制浏览器的接口。它提供了一组用于操作浏览器的方法和属性,可通过编程方式与浏览器进行交互;

        ChromeDriver:ChromeDriver 是 Chrome 浏览器的 WebDriver 实现,它允许 Selenium 控制 Chrome 浏览器的行为。在使用 Selenium 控制 Chrome 浏览器之前,下载配置即可;

        定位元素:在自动化测试或者操作网页时,通常需要找到页面上的特定元素(如按钮、输入框等),然后对其进行操作。Selenium 提供了多种方式来定位元素,包括通过 ID、类名、标签名、XPath 等。在这个示例中,我们使用 XPath 来定位要点击的按钮;

        等待页面加载:由于网页可能需要一些时间来加载和渲染,在进行操作之前,通常需等待页面加载完成;

        在py脚本中,使用 driver.implicitly_wait(10),利用了 Selenium 提供的隐式等待机制(隐式/显式),等待特定的元素出现或某些条件满足后再执行操作

        利用chrome_options.add_argument("window-size=1920x1080"),设置浏览器窗口的大小为 1920x1080 像素

        利用chrome_options.add_argument("--no-sandbox"):禁用沙盒模式,防止未知权限问题

        模拟用户行为:一旦找到了要操作的元素,就可以模拟用户在浏览器中的行为,如点击按钮、输入文本等。在示例中,使用driver.get(url)方法打开指定的 URL。

二、过程记录

        脚本之前已download,详见文末参考链接;执行py脚本报错        依赖缺失,windosw后台安装:pip install selenium

        查看chrome://version/

        下载对应124版本chromedriver,详见文末参考链接,复制到Python安装根目录下

         做了脚本路径和chromedriver.exe的配置检查

         运行python,执行后,正常打开浏览器,会有如下提示

参考链接:【python】简单实现打开浏览器并自动点击跳转_windows脚本点击打开浏览器跳转网页路径点击网页按钮-CSDN博客selenium安装谷歌浏览器驱动chromedriver 122/123/124新版本_chromedriver123-CSDN博客

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

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

相关文章

电脑怎么分盘?简单3步轻松搞定!

在使用电脑时,将硬盘进行分盘是一种常见的操作,可以帮助用户更好地管理数据和文件。通过分盘,用户可以将不同类型的数据存储在不同的区域,提高数据的管理效率和安全性。本文将介绍电脑怎么分盘的3种方法,帮助您了解如何…

【Docker与Termux】闲置旧安卓手机上的NAS无缝部署方案

最近有了新手机,旧手机也闲置了,由于之前一直在寻找平价的NAS替代方案,旧手机在抽屉躺了N天后,我决定让它重新焕发光彩,努力工作,继续拉磨。 这个时代的旧手机可以满足NAS的基本配置需求,内存、硬盘、内置电源、WIFI模块、快速接口,简直是理想中的NAS形态,但是散热、R…

Co-Driver:基于 VLM 的自动驾驶助手,具有类人行为并能理解复杂的道路场景

24年5月来自俄罗斯莫斯科研究机构的论文“Co-driver: VLM-based Autonomous Driving Assistant with Human-like Behavior and Understanding for Complex Road Scenes”。 关于基于大语言模型的自动驾驶解决方案的最新研究,显示了规划和控制领域的前景。 然而&…

win10安装mysql8.0+汉化

一、官网安装 MySQL 1. 在mysql官网进行下载页面 2. 下滑页面,选择 MySQL community download 3.下载windows版本 4.选择第二个download 5.不用登陆,no thanks,just start my download. 6.下载 二、安装 1. 双击安装 2. 选 Full->next 3…

LeetCode---循环队列

循环队列就是只有固定的内存,存数据,出数据,但是也和队列一样,先进先出。如下图所示,这是他的样子 在head出,tail进,但是这个如果用数组解决的话,就有问题,力扣给我们的接…

AlertDialog

样式 步骤 xml 得到按钮 单击监听 弹框

GO—web程序中的请求缓存设置

背景 假设用户数据存在数据库,现在需要一个函数,通过用户名称返回用户信息。 期望:在一次web请求中,不过调用多少次这个函数,只请求一次数据库。 基本信息 type User struct {Name stringAge int }func GetALLUser…

react Effect副作用 - 避免滥用Effect

react Effect副作用 - 避免滥用Effect react Effect副作用基础概率什么是纯函数? 什么是副作用函数?纯函数副作用函数 什么时候使用Effect如何使用Effect 避免滥用Effect根据 props 或 state 来更新 state当 props 变化时重置所有 state将数据传递给父组件获取异步数据 react…

Android Activity因配置改变重建,ViewModel#onClear方法为什么不被调用?

1,问题 注意到切换语言或字体大小改变时,Activity会发生重建,但对应的ViewModel却不会被clear,甚至在重建的Activity,通过new ViewModelProvider(this).get(ViewModel.class)也是上一个Activity的实例,为什…

c++高级篇(一) —— 初识Linux下的进程控制

linux的信号 信号的概念 在Linux中,信号是一种用于进程间通信和处理异步事件的机制,用于进程之间相互传递消息和通知进程发生了事件,但是,它不能给进程传递任何数据。 信号产生的原因有很多种,在shell中&#xff0c…

C/C++ VScode: launch: program ...... dose not exist

VScode: launch: program … dose not exist 介绍 参考VS Code 配置 C/C 编程运行环境(保姆级教程)教程配置了VSCode。在配置launch.json适用多个.c 文件编译时,弹出下面错误。 原因和解决方法 是task.json 默认配置的问题。 默认的 cwd参…

Java数据类型:基本类型

Java是一种强类型语言,定义变量时,必须指定数据类型。 // 变量必须指定数据类型 private String username;初学者不免有个疑问:在实际编写代码的过程中,该如何选择数据类型呢? 回答这个问题之前,先来解决…