Selenium4自动化

引入

import time
from selenium import webdriver
定义一个driver的变量,用来接收实例化后的浏览器
driver = webdriver.Chrome()
使用get方法,访问网址
driver.get(‘https://www.bilibili.com/’)
time.sleep(2)

元素定位方式

通过id定位,By.ID

driver = webdriver.Chrome()
窗口最大化
driver.maximize_window()
driver.get(“https://www.baidu.com/”)
driver.find_element(By.ID, “kw”).send_keys(“selenium”)
driver.find_element(By.ID, “su”).click()
sleep(3)

通过类名定位,By.CLASS_NAME

driver = webdriver.Chrome()
窗口最大化
driver.maximize_window()
driver.get(“https://www.bilibili.com/”)
只获取class属性的第一个元素
driver.find_element(By.CLASS_NAME,’nav-search-input’).send_keys(“2024新年快乐”)
driver.find_element(By.CLASS_NAME,’channel-link’).click()
获取class属性的所有元素
driver.find_elements(By.CLASS_NAME,’channel-link’)[4].click()
for ele in driver.find_elements(By.CLASS_NAME,’channel-link’):
print(ele.text)
错误用法
driver.find_element(By.CLASS_NAME,’icon-bg icon-bg__channel’).click()
sleep(3)

通过标签名定位,By.TAG_NAME

driver = webdriver.Chrome()
窗口最大化
driver.maximize_window()
driver.get(“https://www.bilibili.com/”)
driver.find_element(By.TAG_NAME, “input”).send_keys(“学习selenium”)
不推荐
driver.find_elements(By.TAG_NAME, “input”)[50].click()

通过名称定位,By.NAME

driver = webdriver.Chrome()
driver.get(‘https://www.baidu.com’)
只获取属性的第一个元素
driver.find_element(By.NAME, ‘wd’).send_keys(“软件测试老白”)
获取属性的所有元素
driver.find_elements(By.NAME, ‘wd’)[0].send_keys(“软件测试老白”)

通过链接文本定位,By.LINK_TEXT

driver = webdriver.Chrome()
driver.get(‘https://www.baidu.com’)
driver.find_element(By.LINK_TEXT, ‘新闻’).click()

通过链接部分文本定位,By.PARTIAL_LINK_TEXT

driver = webdriver.Chrome()
driver.get(‘https://www.baidu.com’)
driver.find_element(By.PARTIAL_LINK_TEXT, ‘闻’).click()

通过css_selector定位,By.CSS_SELECTOR

当一个元素无法直接定位,也就是没有id,name等确定标识,这个时候我们需要考虑使用css selector定位器。

它是一种通过CSS样式选择器来定位元素的方法

CSS常用汇总

选择器格式示例示例说明
标签选择器html标签input选择所有<input>元素
ID选择器#id属性值#kw选择所有id=’kw’的元素
类选择器.class属性值.nav-search-input选择所有class=’nav-search-input’的元素
属性选择器1[属性名][name=”wd”]选择所有name等于”wd”的元素
组合选择器标签加属性描述input.s_ipt选择所有class=’_ipt’的<input>元素
父子关系元素1>元素2div>a选择所有父级是<div>的<a>元素
后代关系元素1 元素2div a选择<div>中的所有<a>元素
第一子元素:first-childa:first-child选择所有<a>元素且该元素是其父级的第一个元素
最后一个元素:last-childa:last-child选择所有<a>元素且该元素是其父级的最后一个元素
顺序选择器:nth-child(n)a:nth-child(2)选择所有<a>元素且该元素是其父级的第二个子元素

pyinstaller

pyinstaller的-F参数是指将Python程序打包成一个单独的可执行文件1

pyinstaller相关参数如下12

  • -F,–onefile:打包一个单个文件。如果你的代码都写在一个.py文件的话,可以用这个。如果是多个.py文件就千万别用。
  • -D,–onedir:打包多个文件,在dist中生成很多依赖文件,适合以框架形式编写工具代码,代码易于维护。
  • -K,–tk:在部署时包含TCL/TK。
  • -a,–ascii:不包含编码,在支持Unicode的python版本上默认包含所有的编码。
  • -d,–debug:产生debug版本的可执行文件。
  • -w,–windowed,–noconsole:使用Windows子系统执行,当程序启动的时候不会打开命令行(只对Windows有效)。
  • -c,–nowindowed,–console:使用控制台子系统执行(默认)(只对Windows有效)。

trinitycore GM命令

使用带有GM权限的账号登录

.gm on/off打开/关闭GM权限
.levelup选中目标设置目标提升等级.levelup 69/.levelup 69-2
.die杀死选定的目标。如果没有选择玩家,它会杀死你。
.revive复活指定目标
.modify money修改选中目标的金钱,铜币.modify money 100000
.add为选中目标创建一个物品到包裹

解决骑乘速度始终为60%的问题

.setskill 762 375 375骑术熟练度满
.additem 49177寒冷天气飞行书
.additem 185965暗影界飞行书
.additem 110672潘达利亚飞行书
.additem 129139德拉诺飞行书





trinitycore搭建wow服务器

拉取

cd ~/
git clone -b master https://github.com/TrinityCore/TrinityCore.git

项目wiki

Trinitycore Wiki | TrinityCore MMo Project Wiki

登录myqsl

mysql -h localhost -P 3306 -u root -p

mysql> source /home/wow/TrinityCore/sql/create/create_mysql.sql

客户端版本问题

因为我的客户端版本是13507,和服务器的12340不是完全对应的,所以一开始验证一直失败。后来查了半天,是因为服务器的authserver里没有写入13507对应的信息。于是修改src/server/authserver/Authentication/AuthCodes.cpp 中的 PostBcAcceptedClientBuilds 数组,在里面加入 {13507, 3, 3, 5, 'a'}, ,重新编译authserver和worldserver。
此时验证可以通过了,但是一直显示服务器离线。查过之后发现是auth数据库里realmlist的gamebuild字段的值不对应。把这个值改为13507,重启服务器就可以进入游戏了。

服务器命令

创建账号
bnetaccount create

升级为gm
TC> account set gmlevel 3#1 3 -1
TC> Security level of account WOW1 changed to 3.

增加机器人

GitHub – trickerer/Trinity-Bots: NPCBots for TrinityCore and AzerothCore 3.3.5

运行服务器

WS/BS

登录服务器
/home/wow/server/bin/bnetserver

世界服务器
/home/wow/server/bin/worldserver

screen命令

创建窗口
screen -S bs

离开screen视窗
Ctrl + A + D

查看会话
screen -ls

返回会话
screen -r 6952

退出会话
exit

切换会话
Ctrl + A + N、P

更新服务器

cd ~/TrinityCore/
git pull origin master
cd build
make
make install

电影芳华,也是我们的芳华

有些咱们从小学到的,觉得人类社会理所应当的东西,比如其乐融融、幸幸福福、健健康康的走完一生,其实真的是一件很奢侈很昂贵的东西。对于普通人而言,一点点小小的变故就可能会打断这一进程,所以咱们一家人在一起,每一天的日子都要好好珍惜。

网站开发计划

  1. 新增 API升级至thinkPHP框架 2/17
  2. 更新 消防业务小程序API支持thinkPHP框架 2/17
  3. 更新 临时API首页 2/17
  4. 更新 服务器更换为腾讯云 3/9
    1. 更新 迁移www站 3/9
    2. 更新 迁移wanghongyu站 3/9
    3. 更新 迁移api站 3/9
  5. 新增 警情预警系统API 2/13
    1. 新增 二维码api接口 2/15
    2. 新增 微信发送接口 2/16
    3. 新增 信息数据库 2/18
    4. 新增 重复发送判断 2/18
    5. 修复 微信发送功能 2/19
    6. 更新 UI支持bootstrap 2/27
    7. 新增 灾情信息报告 3/4
    8. 新增 当日警情次数 3/7
    9. 新增 再次发送功能
    10. 新增 发送短信功能
    11. 新增 地理信息上报功能
    12. 新增 图片上传功能
    13. 完成
  6. 更新 API首页
  7. 新增 消防业务API调用文档
  8. 更新 全站构架
    1. 更新 全站分为博客、API、图片站、文档站、项目站、外部链接如GITHUB
    2. 新增 wordpress主题www
    3. 新增 图片站基于对象存储pic
    4. 新增 文档站docs
    5. 新增 项目站obj

重新审视自由

过年的时候遇到很多亲戚,从商的从政的

曾经以为商人是很自由的,想上班就上班,想休息就休息

其实大多数的商人更没有自由,无时无刻不在商场拼杀

看来要重新审视自由的定义了

相由心生 境随心转

相由心生,一个人看到的事物,对事物的理解由他的内心决定。

所以调整心态,用积极向上的心态对待身边人和事物,你就会发现这个世界的美丽。

在日常生活中,要保持良好的精神状态,对任何事物都要保持乐观,不要轻易为一些琐屑的小事而烦恼。

境随心转,如果一直保持好的心情,凡事乐观处之。即使遇到生活中的困难也不心生厌戾之气。

例如被裁员、降职、减薪、感情受挫折、患上疾病都以平静之心面对,以积极的生活态度和付诸努力去对待很快就会走出困境,反之亦然。

如果不珍惜所拥有的事物及人,粗暴的对待,很快好的事物和人也会消失和离开。 友善的对待他人,也会得到相应的对待。反之亦然。多做好事好行义举,在帮助他人时是可以获得身心快乐的。故而心性有好与不好两面那么境遇也会随之而改变。