日常折腾记录
日志
浏览器自动化测试工具和库
自动化测试是软件开发的一个重要环节,可以提高软件的质量和开发效率。而浏览器自动化测试是其中一个重要的领域,可以用于测试网站的前端功能和用户体验。Selenium 是一个流行的浏览器自动化测试库,它支持多种编程语言,包括 Python。
除了 Selenium,还有一些类似的工具,例如 Playwright1 和 Cypress2。它们都提供了比 Selenium 更加现代化和高效的 API 和功能。
Playwright 是由 Microsoft 开发的一个跨浏览器自动化测试库,它支持 Chrome、Firefox 和 Safari 等多种浏览器,并提供了比 Selenium 更加简洁和高效的 API,支持异步操作和多个浏览器实例的管理。
Cypress 是另一个流行的浏览器自动化测试工具,它提供了一套完整的测试框架,可以用于测试 Web 应用的前端功能和性能。它支持实时重新加载和调试,并提供了一套易于使用的 API 和命令行界面。
在使用 Selenium 进行浏览器自动化测试之前,需要安装 Chrome3 浏览器和 ChromeDriver。ChromeDriver 是一个开源的 WebDriver 实现,可以用于控制 Chrome 浏览器进行自动化测试。要保证 Chrome 浏览器和 ChromeDriver 版本相对应,可以通过 Chrome 浏览器的版本信息来确定需要下载的 ChromeDriver4 版本。
在 Python 中使用 Selenium,可以通过 pip5 安装 selenium
包。然后可以使用 webdriver
模块创建 WebDriver
对象,指定要使用的浏览器驱动(例如 ChromeDriver),并调用 get
方法打开指定的网址。使用 find_element
方法可以查找页面中的元素,然后使用 send_keys
方法输入内容并模拟按键操作,例如回车键,参考下方简单示例。
总之,浏览器自动化测试是一个重要的测试领域,Selenium 是一个流行的测试库,而 Playwright 和 Cypress 等工具则提供了更加现代化和高效的 API 和功能,可以根据具体的需求选择使用。
Selenium 官方文档:https://www.selenium.dev/zh-cn/documentation/
安装 Chrome 和 ChromeDriver
Chrome 与 ChromeDriver 版本要对应
Selenium 示例
from selenium import webdriver
from selenium.webdriver.common.by import By
# 创建 WebDriver 对象,指明相应浏览器驱动,这里使用 chromedriver
# wd = webdriver.Chrome(r'D:\DevEnv\WebDrivers\chromedriver\chromedriver.exe')
wd = webdriver.Chrome()
# 调用WebDriver 对象的get方法 可以让浏览器打开指定网址
wd.get('https://www.baidu.com')
element = wd.find_element(By.ID, 'kw')
element.send_keys("你好\n")
Playwright 官网 https://playwright.dev/ ↩︎
Cypress 官网 https://www.cypress.io/ ↩︎
Chrome 下载地址 https://www.google.cn/chrome/index.html ↩︎
Chromedriver 下载地址(注意:最好与你的 Chrome 主机对应)https://chromedriver.storage.googleapis.com/index.html ↩︎
Npm Mirror 配置
通过 yrm 工具配置镜像源
这里是通过安装一个 yrm
工具「这个工具可以同时配置 yarn
」进行配置
# 注意全局安装可能需管理员权限
npm install -g yrm --registry=https://registry.npmmirror.com
yrm add npmmirror https://registry.npmmirror.com
yrm use npmmirror
# 检查是否使用成功
yrm ls
原生 NPM 全局配置源
npm config set registry <https://registry>
清空缓存
npm cache clean -f
检查
npm config list
Tomcat8 问题记录
本文是迁移以前没写进来的内容所以日期只记录我迁移的日期了
由于很多情况我们需要直接用 Idea 直接进行开发,我才用的是下载 zip 包的方式直接安装,自行配置位置即可,简单方便,占用还少,并且还免安装
Linux 下权限问题
Tips: IDEA Error copying configuration files &Address localhost:8080 is already in use
解决方法:
进入tomcat目录下的conf文件夹。
对文件夹下所有文件赋予最大权限。
(命令如下,目录文件根据实际修改)
#进入指定目录
cd /usr/share/tomcat/conf
#赋予权限
sudo chmod 777 *
New Bing 体验
废话少说,直接上教程
开始使用
好的,我可以给你更详细的教程。😊
- 下载安装Edge dev版本的浏览器,这个版本可以直接申请New Bing(不用访问国外网站)。你可以在这个链接1下载Edge dev浏览器。
- 安装后,点击右上角必应图标,会弹出申请按钮,登录账号加入等待列表。请确保你的账号地区设置为美国2。
- 下载安装 HeaderEditor 插件,并按照截图来配置匹配规则和头名称。你可以在这个链接¹下载HeaderEditor插件。匹配规则是
^http(s?)://(.*).bing\\.com /(.*)
,头名称是x -forwarded -for
,头内容是8.8.8.8
2。 - 访问
bing.com/new
,并点击左上角聊天按钮,进入 New Bing。如果访问不了,你可以清除一下浏览器必应的Cookie
,地址栏重新输入必应链接:bing.com
2。
希望这些信息对你有帮助。👍
总结
使用方法呐就是像上面一样,显然我这篇日志也是 New Bing 帮我写的,他显然比我更会分步骤
新必应(New Bing)国内申请与使用教程 - 掘金. https://juejin.cn/post/7199557716998078522 访问时间 2023/3/10. ↩︎ ↩︎
New Bing国内申请与使用教程 - 腾讯云开发者社区-腾讯云. https://cloud.tencent.com/developer/article/2236585 访问时间 2023/3/10. ↩︎ ↩︎ ↩︎ ↩︎
New Bing申请与使用保姆级教学(无需科学) - 知乎. https://zhuanlan.zhihu.com/p/611385684 访问时间 2023/3/10. ↩︎
封面展示测试
本文用来展示封面
新键盘初体验
代理配置
本文会记录一些常用代理的设置
Git
设置代理
git config --global http.proxy 'http://127.0.0.1:7890'
git config --global https.proxy 'https://127.0.0.1:7890'
git config --global http.proxy 'socks5://127.0.0.1:7890'
git config --global https.proxy 'socks5://127.0.0.1:7890'
清空代理
git config --global --unset http.proxy
git config --global --unset https.proxy
curl
传参代理
每次访问时都需要写代理参数
curl -x socks5://127.0.0.1:7981 http://www.google.com # -x 参数等同于 --proxy
设置配置文件
每次使用curl
的时候都会使用代理
# 修改curl配置文件
vim ~/.curlrc
# 写入
socks5 = "127.0.0.1:7981"
# 如果临时不需要代理使用以下参数
curl --noproxy "*" http://www.google.com
设置linux全局代理配置
不仅仅适用于curl
,大部分的linux命令行工具都会读取这个配置通过代理访问网络。
# 修改shell配置文件 ~/.bashrc ~/.zshrc等
export http_proxy=socks5://127.0.0.1:7981
export https_proxy=$http_proxy
# 设置setproxy和unsetproxy 可以快捷的开关
# 需要时先输入命令 setproxy
# 不需要时输入命令 unsetproxy
alias setproxy="export http_proxy=socks5://127.0.0.1:7981; export https_proxy=$http_proxy; echo 'HTTP Proxy on';"
alias unsetproxy="unset http_proxy; unset https_proxy; echo 'HTTP Proxy off';"
排查问题
curl -v
参数会输出请求中访问的路由信息,方便确定是否设置成功,请求有没有代理
netstat -nat | grep 7981
查看与代理端口相链接的端口
lsof -i :7981
查看端口相关的进程
WSL
WSL 可以直接访问主机代理
SSH
SSH 的代理配置这里是为了 Github 的 ssh 访问
配置方式如下
这里需要说明一下,下面配置中执行了 nc 命令,所以这里我们需要安装 BSD 版本的 netcat 工具,GNU 的没法使用代理1。
SSH 代理
这里用的环境是 Arch Linux
# 有时候你需要自己 sudo pacman -Ss netcat , 看清楚是 BSD 版本的就行
sudo pacman -S community/openbsd-netcat
配置
# ~/.ssh/config
Host github.com *.github.com
User git
IdentityFile ~/.ssh/<私钥>
ProxyCommand nc -X 5 -x <PROXY_ADDRESS>:<PORT> %h %p
Docker
Mysql
# MySql 5.7
docker run --name mysql57 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7
Android 刷机日志
简单记录一下我的刷机历程
解锁 BL
根据官方工具提示解锁即可
Root·可选
设置里面搜索 root「此 root 是官方给开发版提供的」
刷 REC
找到对应机型的 REC 用秋之盒刷入即可
TWRP
TWRP 里面可刷入底包
Arch Linux 踩坑记录
引言
Linux 拥有各种各样的发行版本,但是 Arch Linux 是我入坑 Linux 的一个比较重要的版本(同时后面也无法放下的一个版本)。
我非常喜欢 Arch Wiki 里面的几句话:
- Arch Linux 将简洁定义为:避免任何不必要的添加、修改和复杂增加。
- Keep It Simple, Stupid(对应中文为“保持简单,且一目了然”)。
我个人的安装是参考 ArchLinux 的 官方 Wiki 基本安装需要参考的文章顺序如下(这里只给出英文的链接,自行切换中文):
这里是我的踩坑记录,部分软件安装现在由下面两个项目替代解决,本文只记录碰到的问题和参考用到的文章或者教程什么的,关于安装部分我参考了:
- Arch Tutorial https://github.com/ArchLinuxStudio/ArchLinuxTutorial
- Arch Linux 简明指南 https://github.com/NakanoMikuOrg/arch-guide
其中「简明指南」派生自「ArchTurorial」,并且 简明指南 对虚拟机的模拟,是尽量模拟了物理机的,所以我个人更加倾向简明指南,当然,无论这两个指南写的再棒
双系统分区方案
双系统不是必须的,如果不喜欢双系统,可以参考下面的 [WSL Archlinux]
由于存在不同的硬盘接口,这里的分区使用 pn
替代
挂载点 | 分区 | 大小 | 挂载顺序 |
---|---|---|---|
/mnt | p3 | 256 GiB | 1 |
[SWAP] | p2 | 「与内存大小一致」 | 2 |
/mnt/efi/boot | p1 | 512 MiB | 3 |
/mnt/home | p4 | 剩余空间 | 4 |
多系统解决
机启动出现 错误 sparse file not allowed archlinux
sudo vim /etc/default/grub
对 /etc/default/grub
进行取消注释
GRUB_DISABLE_OS_PROBER=false
问题记录
一、使用 pacman
更新时遇到「GPGME 错误:无数据」
解决方案1
sudo rm /var/lib/pacman/sync/*.sig
二、双系统时间不同步问题
原因:Windows 系统使用 UTC2
Windows 使用 UTC 后,请记得禁用 Windows 的时间同步功能,以防 Windows 错误设置硬件时间。如上文所说,Linux 可以使用NTP 服务来在线同步硬件时钟。
使用 regedit
,新建如下 DWORD 值,并将其值设为十六进制的 1
。
右键左下角的开始菜单
reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation" /v RealTimeIsUniversal /d 1 /t REG_DWORD /f
如果以上操作不起作用,并且你使用的是 Windows 64 位系统,将 DWORD
修改为 QWORD
。
如果 Windows 要求根据夏令时更新时钟,可以允许。时钟仍然是 UTC,仅是显示时间会改变。
三、模块缺失的警告[^3]
解决 Arch Linux 构建内核模块时报模块缺失的警告
当我们安装完 Arch Linux 时,你会发现构建内核模块「执行下述命令」时出现警告 ==> WARNING: Possibly...
内容
# 构建内核模块
sudo mkinitcpio -P
警告内容如下:
==> WARNING: Possibly missing firmware for module: wd719x
==> WARNING: Possibly missing firmware for module: aic94xx
==> WARNING: Possibly missing firmware for module: xhci_pci
新错误:
==> WARNING: Possibly missing firmware for module: bfa
==> WARNING: Possibly missing firmware for module: qed
==> WARNING: Possibly missing firmware for module: qla1280
==> WARNING: Possibly missing firmware for module: qla2xxx
Arch Linux CN 源 和 4edu 源
Windows 基本安装与维护
这里采用 Windows 10 操作系统作为内容。
分区
- 使用 DiskGenius markdown front meta 将安装系统的磁盘进行清除扇区,以保证安装过程中不会出错
- 清除分区后请将磁盘格式转换成 GUID 格式
- 新建分区:勾选[建立 ESP 分区],其余默认
- 主磁盘分区设置 $256*1024+8=262152MiB$ (结尾务必为 8),卷标自行设置
- 剩余空间自行分配(这里我按照我的个人习惯来了) 这里我为存放数据分配了 512008MB 空间
- 由于硬盘还算大,所以我将剩余的空间留给了双系统的 ArchLinux 大约还剩 253.6GB,Linux 的话是完全足够了的
Dism++ 安装系统
- 打开 Dism++ 按下
Ctrl
+N
释放映像 选择镜像和释放位置,勾选[格式化]和[添加引导] - 选择 ESP 分区,也就是刚才创建的 300MB 的那个分区
- 等待……
- 打开会话,关闭系统启动项的 SecurityHealth [也就是微软自带的杀毒软件]
- 系统简单做一些小优化,具体查看控制面板下的系统优化内部条目
- 配置完成后重新启动
Windows 10 初始化引导配置
选择区域
下一步
选择输入法/键盘布局
下一步
网络
我没有 Internet 连接
继续执行有限的设置
接受 “Windows 10 许可协议”
接受
输入“用户名”建议英文「中文在安装某些软件可能会受到影响」
下一步
密码
这里建议先跳过直接点击下一步,
此时创建密码需要设置三个密保问题!!!
会浪费很多时间!!!可选项下一步
服务,全部先关闭,这里的服务暂时没什么用处
等待…
进入系统后将右下角的 OneDrive 关闭,并在控制面版里面卸载
此时联网进入设置更新系统,重命名主机名并且重启一次
Windows Terminal
微软应用商店中下载 Windows Terminal
安装 oh-my-posh 和 posh-git
# 管理员运行 powershell
Install-Module posh-git
Install-Module oh-my-posh
Install-Module DirColors
> code $PROFILE
==============================
Import-Module posh-git
Import-Module oh-my-posh
Import-Module DirColors
Set-PoshPrompt -Theme Material
==============================
「问题」PowerShell因为在此系统上禁止运行脚本,解决方法
set-executionpolicy remotesigned
注意 Windows + Linux 双系统状态,在切换系统时请务必重启,不然 Windows 会独占无线网卡让 Linux 没法检测到
LTSC 2019 激活
2021.10.16
设置 KMS 密钥,密钥来自微软
slmgr.vbs /ipk 密钥
# (KMS 服务器地址)
slmgr.vbs /skms kms.loli.beer
slmgr.vbs /ato
「问题」Windows 软链接链接
目录(Directory)
MKLINK 创建符号链接。
MKLINK [[/D] | [/H] | [/J]] Link Target
删除
RD <TARGET PATH>
问题记录
这几天用的 Windows 10 系统遇到一个莫名奇妙的问题,就是在快速访问里总是固定了下载文件夹,而且无法取消固定,其它文件夹都正常就是它不能取消固定,始终顽固的显示在快速访问里。即使我在“查看|选项|隐私"里取消对”在‘快速访问’中显示最近使用的文件”和“在‘快速访问’中显示常用文件夹”的勾选,再清除文件资源管理器历史记录最不行。
最后在询问了度娘 N 多关键词后终于在一个解决其它快速访问功能异常的问答中找到了解决我这个问题的答案。
在文件资源管理器地址栏输入:
%APPDATA%\Microsoft\Windows\Recent\AutomaticDestinations
打开的文件夹里找到文件:f01b4d95cf55d32a.automaticDestinations-msv
删除它,或者安全起见你可以剪切它到其它地方,问题就这么简单的解决了:)
WSL 问题记录
Debian系列等安装
Nothing: Just in the Microsoft Store Installed
没什么好说的,凡是微软应用商店有的直接下载安装即可
wsl --list --online
端口转发配置
# Clash
# 172.17.40.17 为 WSL 的地址,可以使用 `ifconfig` 查看 eth0 网卡地址
netsh interface portproxy add v4tov4 listenport=7891 listenaddress=0.0.0.0 connectport=7891 connectaddress=172.17.40.17
netsh interface portproxy add v4tov4 listenport=7890 listenaddress=0.0.0.0 connectport=7890 connectaddress=172.17.40.17
netsh interface portproxy add v4tov4 listenport=9090 listenaddress=0.0.0.0 connectport=9090 connectaddress=172.17.40.17
# 展示所有端口转发
netsh interface portproxy show all
# 清除所有端口转发
netsh interface portproxy reset
终端模拟器
Windows Terminal 配置标题栏图标
图标文件配置[^1]
将图标放在这个目录,然后
%LOCALAPPDATA%\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\RoamingState
通过在
settings.json
中将此行添加到配置文件来显示图标:"icon": "ms-appdata:///roaming/ kali.ico"
。
图形化配置
- 打开 Windows 终端,
Ctrl
+,
进入终端 GUI 配置
Visual Studio Code
问题记录
Problems loading reference ‘https://json.schemastore.org/package'
问题描述
CSS contributions to package.json Problems loading reference ‘https://json.schemastore.org/package': Unable to load schema from ‘https://json.schemastore.org/package': Downloading schemas is disabled through setting ‘json.schemaDownload.enable’.(768)
原因
vscode在加载tsconfig.json文件时会向https://json.schemastore.org/tsconfig发送请求,由于本机的同源策略安全设置,不允许跨域访问资源,所有会将该请求的响应数据拦截。
解决方案
在 settings.json
中启用该配置以获取 JSON schemas。
// When enabled, JSON schemas can be fetched from http and https locations.
// 启用后,可以从 http 和 https 位置获取 JSON schemas。
"json.schemaDownload.enable": true
插件列表
不背单词实现键盘控制
部分参考来自知乎路遥的蓝牙键盘+不背单词+弯了的 iPadAir3 yyds
本文使用的 Android 手机1
按键映射
- 认识:
q
- 模糊:
w
- 不认识:
e
- 下一个:
n
- 播放音频:
p
- 拼写切换:
f
已知问题
- 「继续」和「看答案」在 Android 端上好像没有映射, 端上有映射(我没有 iPad 所以未验证)
Netlify CMS 尝试
由于最近迁移博客到 Cloudflare Pages 上了,所以这边放弃了
简单步骤
第一步
在 static/
目录下创建 admin/
后台目录,主要是用来登录站点的
第二步
在 admin/
目录下创建 index.html
(后台入口文件)和 config.yml
(配置文件)
index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Content Manager</title>
<!-- Include the script that enables Netlify Identity on this page. -->
<script src="https://identity.netlify.com/v1/netlify-identity-widget.js"></script>
</head>
<body>
<!-- Include the script that builds the page and powers Netlify CMS -->
<script src="https://unpkg.com/netlify-cms@^2.0.0/dist/netlify-cms.js"></script>
</body>
</html>
这里可以参考一下我的 config.yml
# 在线后端配置
backend:
name: git-gateway
branch: master # 分支用来更新(可选; 默认到 master)
publish_mode: editorial_workflow
show_preview_links: true
search: false
# 本地配置
local_backend: true # 本地后端(建议开启,本地编辑会快很多)
locale: [zh_Hans, en] # 语言
# 媒体资源和内容配置
media_folder: static/img
public_folder: /img
collections:
- name: "Post"
label: "Post"
folder: "content/post"
create: true
slug: "{{year}}-{{month}}-{{day}}-{{slug}}"
editor:
preview: true
fields:
- { label: "Title", name: "title", widget: "string" }
- { label: "Publish Date", name: "date", widget: "datetime" }
- { label: "Description", name: "description", widget: "string" }
- { label: "Body", name: "body", widget: "markdown" }
第三步:运行
在运行之前请保证你的目录应该是这样子的
archetypes
assets
media
uploads
content
post
test
layouts
partials
static
admin
images
分别在两个终端中运行
第一个终端
npx netlify-cms-proxy-server
另外一个终端
hugo server
站点规范
规范参考
- 中文排版需求 w3c 中文排版需求
- 中文文案排版指北 中文文案排版指北 ✅
- 中文技术文档的写作规范 阮一峰的网络日志
- 文档写作规范 MDN Web 文档写作规范
自定规范
- 🤓中英之间加空格
- 🚫文字内容不能超过 80 字符(半角)
所以如果写一段文字中只要(可能 )你的写的超过 80 字符,请在前面的一个标点处换行, 文字内容不能超过 80 字符。
- 🚫注释为
#
开头的代码块
第一篇文章
这是我的再一次的第一篇文章
不知道是第几个第一篇了,之前的博客由于觉得自己太菜(虽然现在也是)就没怎么继续 了。
这一次卷土重来希望能坚持下去,加油!
这里再次用来测试一下
标题测试一
简单的一段文本内容
标题测试二
简单的另一段文本内容
一次的 Linux 全盘数据丢失经历
事情发生 2020 年 4 月 6 日: 一次惨痛的 Linux 装机记录 -
时间:2020 年 4 月 4 日
OMG!那天在和耗子聊天的过程中康到 Linux-qq 更新了,我靠直接莽上去!
实测确实没有之前那样疯狂崩溃了后面折腾虚拟机(VirtualBox)想用虚拟机里面的钉钉代替接下来的网课,测试了一下!!感觉不错哎~
很好,我就开始准备把之前的文件都迁移到 Linux 的 ext4 文件系统上面,很好这特喵的直接出问题
想了想我直接整起来了,4 月 5 日晚上开始迁移文件,设置了一个定时关机,结果 11:30 偷偷起来康好像界面没了,我想,应该好了。。。
直接一手 shutdown now 关了机子
翌日,起来的时候直接出大问题,丢了之前收集的实用软件和一些 Windows 下开源的小,想去用之前的 PE 重装突然发现,我的 PE 里面没有镜像?!?!
人直接傻了,好吧重进我的 Arch ,那就去下载一个,在 firefox 里面下载了一个 Windows10 的官方镜像后
直接准备去重装,想到之前 DiskGenius 里面好像可以建立 ext4 的文件系统,我就准备说那应该也能够直接查看 ext4 的文件系统吧,很好!
开机进 PE,完美!进入 DiskGenius 后发现真的可以查看,结果在准备拷镜像到 U 盘 的时候他失败了,然后我又重启去进 Linux !
待续,4.6 日这里 20:05 我的镜像在手机上下载好了
继续
好吧第二天才来自己记录这个东西(真的鸽自己)~
继续昨天的讲,用电脑下了之前在文叔叔里面的一个 Windows7 镜像后,直接莽上去。。。
后果就是我之前从来没有用这台机子装过 win7 导致安装完成后进入部署阶段后直接 GG(没法识别到我的键盘和鼠标),去群里问了问?
说是没有 usb3.0 驱动,我傻了,就继续往 pe 里面下载 usb3.0 补丁包。
显然后面还是失败了,只好去手机上下载 Windows10 的镜像,然后拷到电脑上面,花了 30 分钟再浏览器里面下载到一半,【挂了】
后面换了 ADM 的下载器下载才成功下载完成,又花了五分钟拷到电脑上面,(万幸,到这里我总算结束了),[下次再也不敢了]….可惜了之前收集的那些开源软件。。。
后面开个新的页面记录一下地址吧,基本都是从 GitHub 上面下载下来的
最后如愿的回到了 Windows 的怀抱