日志

日常折腾记录

浏览器自动化测试工具和库

2023-03-11 #Test #End to End Testing

自动化测试是软件开发的一个重要环节,可以提高软件的质量和开发效率。而浏览器自动化测试是其中一个重要的领域,可以用于测试网站的前端功能和用户体验。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")

Npm Mirror 配置

2023-03-11 #NPM #PackManager #Config

通过 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 问题记录

2023-03-11 #Tomcat #Server

本文是迁移以前没写进来的内容所以日期只记录我迁移的日期了

由于很多情况我们需要直接用 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 体验

2023-03-10 #AI #ChatGPT #Bing

废话少说,直接上教程

开始使用

好的,我可以给你更详细的教程。😊

根据搜索结果1 2 3,你需要以下几个步骤:

  1. 下载安装Edge dev版本的浏览器,这个版本可以直接申请New Bing(不用访问国外网站)。你可以在这个链接1下载Edge dev浏览器。
  2. 安装后,点击右上角必应图标,会弹出申请按钮,登录账号加入等待列表。请确保你的账号地区设置为美国2
  3. 下载安装 HeaderEditor 插件,并按照截图来配置匹配规则和头名称。你可以在这个链接¹下载HeaderEditor插件。匹配规则是 ^http(s?)://(.*).bing\\.com /(.*) ,头名称是 x -forwarded -for ,头内容是 8.8.8.8 2
  4. 访问 bing.com/new ,并点击左上角聊天按钮,进入 New Bing。如果访问不了,你可以清除一下浏览器必应的 Cookie ,地址栏重新输入必应链接:bing.com 2

希望这些信息对你有帮助。👍

总结

使用方法呐就是像上面一样,显然我这篇日志也是 New Bing 帮我写的,他显然比我更会分步骤


  1. 新必应(New Bing)国内申请与使用教程 - 掘金. https://juejin.cn/post/7199557716998078522 访问时间 2023/3/10. ↩︎ ↩︎

  2. New Bing国内申请与使用教程 - 腾讯云开发者社区-腾讯云. https://cloud.tencent.com/developer/article/2236585 访问时间 2023/3/10. ↩︎ ↩︎ ↩︎ ↩︎

  3. New Bing申请与使用保姆级教学(无需科学) - 知乎. https://zhuanlan.zhihu.com/p/611385684 访问时间 2023/3/10. ↩︎

新键盘初体验

2022-11-19 #keyboard #new #life

昨天买的新键盘1到手了,体验感觉十分良好,在这里教程简单,这里对官方说明书2中的按键做整理

使用

开机与关机

  1. 说明书中的开机方式

    蓝牙开/关机

    • 2 秒内连续敲击按空格键三下,数字 1 或 2 或 3 键灯闪烁,键盘开机。

未完待续···

代理配置

2022-10-05 #Proxy

本文会记录一些常用代理的设置

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

2022-10-05 #Docker

Mysql

# MySql 5.7
docker run --name mysql57 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7 

Android 刷机日志

2022-10-05 #Android #REC #BL #ROOT

简单记录一下我的刷机历程

解锁 BL

根据官方工具提示解锁即可

Root·可选

设置里面搜索 root「此 root 是官方给开发版提供的」

刷 REC

找到对应机型的 REC 用秋之盒刷入即可

TWRP

TWRP 里面可刷入底包

Arch Linux 踩坑记录

2022-10-01 #ArchLinux #Linux #KISS

引言

Linux 拥有各种各样的发行版本,但是 Arch Linux 是我入坑 Linux 的一个比较重要的版本(同时后面也无法放下的一个版本)。

我非常喜欢 Arch Wiki 里面的几句话:

  • Arch Linux 将简洁定义为:避免任何不必要的添加、修改和复杂增加
  • Keep It Simple, Stupid(对应中文为“保持简单,且一目了然”)。

我个人的安装是参考 ArchLinux 的 官方 Wiki 基本安装需要参考的文章顺序如下(这里只给出英文的链接,自行切换中文):

  1. Installation guide

  2. Arch boot process

  3. General recommendations

  4. List of applications

这里是我的踩坑记录,部分软件安装现在由下面两个项目替代解决,本文只记录碰到的问题和参考用到的文章或者教程什么的,关于安装部分我参考了:

其中「简明指南」派生自「ArchTurorial」,并且 简明指南 对虚拟机的模拟,是尽量模拟了物理机的,所以我个人更加倾向简明指南,当然,无论这两个指南写的再棒

双系统分区方案

双系统不是必须的,如果不喜欢双系统,可以参考下面的 [WSL Archlinux]

由于存在不同的硬盘接口,这里的分区使用 pn 替代

挂载点分区大小挂载顺序
/mntp3256 GiB1
[SWAP]p2「与内存大小一致」2
/mnt/efi/bootp1512 MiB3
/mnt/homep4剩余空间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 基本安装与维护

2022-10-01 #Windows

这里采用 Windows 10 操作系统作为内容。

分区

  1. 使用 DiskGenius markdown front meta 将安装系统的磁盘进行清除扇区,以保证安装过程中不会出错
  2. 清除分区后请将磁盘格式转换成 GUID 格式
  3. 新建分区:勾选[建立 ESP 分区],其余默认
  4. 主磁盘分区设置 $256*1024+8=262152MiB$ (结尾务必为 8),卷标自行设置
  5. 剩余空间自行分配(这里我按照我的个人习惯来了) 这里我为存放数据分配了 512008MB 空间
  6. 由于硬盘还算大,所以我将剩余的空间留给了双系统的 ArchLinux 大约还剩 253.6GB,Linux 的话是完全足够了的

Dism++ 安装系统

  1. 打开 Dism++ 按下 Ctrl + N 释放映像 选择镜像和释放位置,勾选[格式化]和[添加引导]
  2. 选择 ESP 分区,也就是刚才创建的 300MB 的那个分区
  3. 等待……
  4. 打开会话,关闭系统启动项的 SecurityHealth [也就是微软自带的杀毒软件]
  5. 系统简单做一些小优化,具体查看控制面板下的系统优化内部条目
  6. 配置完成后重新启动

Windows 10 初始化引导配置

  1. 选择区域 下一步

  2. 选择输入法/键盘布局 下一步

  3. 网络

    1. 我没有 Internet 连接
    2. 继续执行有限的设置
  4. 接受 “Windows 10 许可协议”接受

  5. 输入“用户名”建议英文「中文在安装某些软件可能会受到影响」下一步

  6. 密码

    这里建议先跳过直接点击下一步
    此时创建密码需要设置三个密保问题!!!
    会浪费很多时间!!!可选项
    下一步

  7. 服务,全部先关闭,这里的服务暂时没什么用处

  8. 等待…

  9. 进入系统后将右下角的 OneDrive 关闭,并在控制面版里面卸载

  10. 此时联网进入设置更新系统,重命名主机名并且重启一次

Windows Terminal

微软应用商店中下载 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 软链接链接

Windows 下创建符号链接

目录(Directory)

MKLINK 创建符号链接。

MKLINK [[/D] | [/H] | [/J]] Link Target 

删除

RD <TARGET PATH>

问题记录

这几天用的 Windows 10 系统遇到一个莫名奇妙的问题,就是在快速访问里总是固定了下载文件夹,而且无法取消固定,其它文件夹都正常就是它不能取消固定,始终顽固的显示在快速访问里。即使我在“查看|选项|隐私"里取消对”在‘快速访问’中显示最近使用的文件”和“在‘快速访问’中显示常用文件夹”的勾选,再清除文件资源管理器历史记录最不行。


最后在询问了度娘 N 多关键词后终于在一个解决其它快速访问功能异常的问答中找到了解决我这个问题的答案。

在文件资源管理器地址栏输入:

%APPDATA%\Microsoft\Windows\Recent\AutomaticDestinations

打开的文件夹里找到文件:f01b4d95cf55d32a.automaticDestinations-msv

删除它或者安全起见你可以剪切它到其它地方,问题就这么简单的解决了:)

WSL 问题记录

2022-10-01 #WSL #Windows #System #Linux #Develop

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

终端模拟器

2022-07-27 #Windows #Tips

Windows Terminal 配置标题栏图标

图标文件配置[^1]

  1. 将图标放在这个目录,然后 %LOCALAPPDATA%\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\RoamingState

  2. 通过在 settings.json 中将此行添加到配置文件来显示图标: "icon": "ms-appdata:///roaming/ kali.ico"

图形化配置

  • 打开 Windows 终端,Ctrl + , 进入终端 GUI 配置

Visual Studio Code

2022-07-27 #Editor #Tool #Code

问题记录

Problems loading reference ‘https://json.schemastore.org/package'

settings.json 中启用该配置以获取 JSON schemas。

// When enabled, JSON schemas can be fetched from http and https locations.
// 启用后,可以从 http 和 https 位置获取 JSON schemas。
"json.schemaDownload.enable": true

插件列表

Netlify CMS 尝试

2022-05-22 #SGG

由于最近迁移博客到 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

站点规范

2022-04-22 #Spec

规范参考

自定规范

  • 🤓中英之间加空格
  • 🚫文字内容不能超过 80 字符(半角)

所以如果写一段文字中只要(可能 )你的写的超过 80 字符,请在前面的一个标点处换行, 文字内容不能超过 80 字符。

  • 🚫注释为 # 开头的代码块

第一篇文章

2022-04-21 #Log #Error

这是我的再一次的第一篇文章

不知道是第几个第一篇了,之前的博客由于觉得自己太菜(虽然现在也是)就没怎么继续 了。

这一次卷土重来希望能坚持下去,加油!

这里再次用来测试一下

标题测试一

简单的一段文本内容

标题测试二

简单的另一段文本内容

一次的 Linux 全盘数据丢失经历

2020-04-07 #Log #Error #Warning

事情发生 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 的怀抱