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

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

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