码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • python selenium控制浏览器打开网页 模拟鼠标动作


    selenium 是一个浏览器控制的库 需要下载安装 谷歌浏览器的驱动 chromedriver

    https://sites.google.com/chromium.org/driver/downloads 在这里选择跟自己谷歌浏览器版本号一致的驱动程序  如果是最新的浏览器版本可以点这里下面这个链接

    Chrome for Testing availability

    选择自己系统对应的驱动下载就行

    ps:网上很多教程给的地址 已经不在更新了  还停留在90的版本 除非自己的谷歌浏览器版本很低否则都是用不了的!

    下载好以后  chromedriver

    mac/linux 放在自己的命令目录里 /usr/bin/

    win 放在自己python的安装目录下面 找不到的话 可以whereis pip 一下 看看pip在哪里然后丢到一起

    如果没有vpn没有办法下载谷歌驱动的可以点这里下载  是我下载好的最新的驱动 win linux mac都有  注意看一下自己的谷歌浏览器版本号:116 才可以!!!!!

    驱动安装以后安装  selenium pip安装 或者通过pycharm安装都是ok的

    我这里用的selenium 版本是3.141 新版已经4.x了,如果自己没有这个库可以点击“+”安装就可以了。

    入门使用:

    打开chrome浏览器并且访问百度首页:

    1. from selenium import webdriver
    2. url = "https://www.baidu.com"
    3. driver = webdriver.Chrome()
    4. driver.get(url)

     selenium是可以在浏览器里执行js代码的  所以一些点击 滑动 都可以用js来实现

    我试过一些它自带的dom定位方法  没有js好用

    1. js = "window.scrollBy(0,500)" # 向下滑动500个像素 传入x,y坐标
    2. driver.execute_script(js)
    3. time.sleep(2)

    用自带的方法通过class Name去定位 并且点击

    1. #定位到要点击的元素
    2. right_click =driver.find_element_by_class_name(tag)
    3. #对定位到的元素执行鼠标操作
    4. ActionChains(driver).click(right_click).perform()

    有很多方法 大家可以都尝试一下!

     这种是通过执行js 去定位ClassName为page-link的多个同className是一个数组  选择你要点第几个就行了!

    1. js = "document.getElementsByClassName('page-link')["+ str(n) +"].click()"
    2. driver.execute_script(js)

    最后记得施放资源

    driver.quit()

    总结:核心就是 打开一个网站 然后去定位元素位置,执行点击,输入的动作!输入我这个脚本没有用到,等我用到了 再写吧~ 

  • 相关阅读:
    深入理解TDD(测试驱动开发):提升代码质量的利器!
    基于Vue+ELement搭建登陆注册页面实现后端交互
    迅为RK3588开发板Linux安卓12瑞芯微ARM核心板人工智能工业AI主板
    【操作系统】[linux]基本指令-快速上手
    软件工程知识总结梳理
    JDK 自带的服务发现框架 ServiceLoader 好用吗?
    MS90C385B——+3.3V 150MHz 的 24bit 平板显示器(FPD) LVDS 信号发送器
    PostMan 测试
    WPF向Avalonia迁移(二、一些可能使用到的库)
    【考研复试】计算机专业考研复试英语常见问题三(个人选择/学业规划篇)
  • 原文地址:https://blog.csdn.net/u014017080/article/details/132756494
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号