IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> 树莓派4B selenium + Firefox + python3+打卡签到脚本 -> 正文阅读

[开发测试]树莓派4B selenium + Firefox + python3+打卡签到脚本

ddd阿里云白嫖服务器到期,手上还有一块树莓派4B,用Selenium做自己学校的打卡签到。

打卡程序私我发,根据你们学校自己的网址更改就可以用

树莓派4B不支持chrome + selenium,我目前的版本就是基于阿里云windows系统的Chrome+selenium改的。

????????阿里云服务器ECS+windows系统工具:

????????????????「ALI云服务ECS配置」 链接:https://www.aliyundrive.com/s/z4tJ7MPvEQG

树莓派我用的镜像文件:

????????????????树莓派OpenCV-4.5.0镜像 - Kevin's Blog (linuxer.top)

????????这个镜像文件系统很全,建议使用还安装了python3,和opencv4.5,实测可以正常使用

1.下载geckodriver

????????https://github.com/mozilla/geckodriver/releases/download/v0.23.0/geckodriver-v0.23.0-arm7hf.tar.gz

0.23-arm7hf版本,下载到电脑,Xftp7传到树莓派的主页

在这里用树莓派右键解压缩到当前文件夹,第一步完成,位置随意,桌面就可以

(0.19为测试用无需在意)

进入你放的目录,对geckodriver提权


sudo chmod -R 777 geckodriver

2.控制台安装selenium库

? ? ? ? 在这一步之前,建议先使用以下命令进行apt更新

sudo apt update?? ??? ??? ?apt 源更新
sudo apt upgrade?? ??? ??? ?apt 软件更新

更新好后使用如下命令,如果已经安装selenium,请先pip3 uninstall selenium再下载

sudo pip3 install selenium==3.141.0

????????????????????????????????????????关键:

? ?????????????????????????????????????????????????Selenium的版本是3.141.0

(我直接使用 sudo pip3 install selenium ,会给我下载最新的版本的selenium4.0.0,新版本的selenium的webdriver的path环境添加会不一样,所以我这里使用3.141版本,可以和网络上一些教程的代码复用)

对应firefox的最新版本(2021.11.28)

注意这个带有opencv的镜像控制台输入? python 打开的是pyton2.7 ,下面指令是将控制台输入的python软链接换成python3

切换python版本
sudo rm /usr/bin/python 			将python的链接删
sudo ln -s /usr/bin/python3.7 /usr/bin/python	将python3软链接上去

3.下载FireFox ESR(一句代码搞定)

sudo apt install firefox-esr

这里在?树莓派的Logo点开互联网找到Firefox查看版本信息

版本更高的firefox应该也可以用当前0.23版本的geckodriver


4.下载依赖包

pip3 install pyvirtualdisplay

5.显性显示代码

#!/usr/bin/python3
 
# -*- coding: utf-8 -*-

from selenium import webdriver
from selenium.webdriver import ChromeOptions
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from pyvirtualdisplay import Display
from selenium.webdriver.firefox.service import Service
from selenium.webdriver.firefox.options import Options as Firefox_Options
import os
import time
import sys


firefox_options = webdriver.FirefoxOptions()
firefox_options.add_argument('--no-sandbox')
firefox_options.add_argument('--disable-gpu')
firefox_options.add_argument('headless')
firefox_options.add_argument('blink-settings=imagesEnabled=false')
firefox_options.set_preference('permissions.default.image',2)

driver = webdriver.Firefox(executable_path='/home/pi/Desktop/dail_all/geckodriver')
driver.get("https://www.aliyundrive.com/s/z4tJ7MPvEQG/folder/60cc4950f7dce6ef15f44d129f5e1116b68556c1")
time.sleep(5)
driver.close()

firefox_options的参数设置可以根据你自己的需要去设置

executable_path的geckodriver的位置根据自己放的地方去调整

贴出教程:

????????????????(51条消息) selenium 谷歌 火狐 浏览器设置参数_u010451638的博客-CSDN博客

效果是会打开页面并且显示

完成

?


?拓展排坑:

?这种方法可以在控制台使用 python3? /usr/bin/daily.py启动

也可以在Thonny中跑起来,但是如果使用树莓派定时任务,在后台运行就不行了;

并且在控制台使用 sudo python3 /usr/bin/daily.py 启动代码打开页面就会报错

===============================================================

首先,firefox不支持root用户访问,所以sudo提权使用webdriver打开网页会报错;其次这种显性显示在后台也跑不起来,所以这种页面可以显示的程序适合调试,不适合放后台跑;

可以放后台跑的程序使用pyvirtualdisplay包

代码:

#!/usr/bin/python3
 
# -*- coding: utf-8 -*-

from selenium import webdriver
from selenium.webdriver import ChromeOptions
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from pyvirtualdisplay import Display
from selenium.webdriver.firefox.service import Service
from selenium.webdriver.firefox.options import Options as Firefox_Options
import os
import time
import sys


display = Display(visible=0, size=(900, 800))
display.start()

driver = webdriver.Firefox(executable_path='/home/pi/Desktop/dail_all/geckodriver')
driver.get("https://www.aliyundrive.com/s/z4tJ7MPvEQG/folder/60cc4950f7dce6ef15f44d129f5e1116b68556c1")

display.stop()
driver.close()

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-11-29 16:36:18  更:2021-11-29 16:36:30 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 4:48:55-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码