关于我为了玩游戏而学了一门语言

本文介绍了作者如何通过学习Python的Selenium库,为最终幻想14游戏创建一个自动化工具,以替代手动完成复杂的生产算法。作者详细讲解了设置无头浏览器、输入数据、获取精度信息、启动求解器以及处理下拉框选择等步骤,旨在简化游戏内生产过程。
摘要由CSDN通过智能技术生成

关于我为了玩游戏而学了一门语言


前言

`(本人是一个小白,目前还在上高中如果有写的不好的还请各位大佬见谅)

最近在玩一个游戏叫最终幻想14游戏,里面的生产算法使我这种懒狗实在是懒得去肝(确实是懒人推动生产力了qwq)。迫不得已去网上找能代替我做算法的网站。但是网站是输入点击计算一系列按钮又太繁琐,所以就想着用机器代替人工,自己只需要输入必要的数据就好了。


一、导入selenium入图片描述记得导入webdriver的时候看看自己python文件夹里有没有chromedriver(我用的是这个)

二、new一个隐示的driver

代码如下(示例):

chrome_options = Options()
chrome_options.add_argument('--headless')
driver = webdriver.Chrome(chrome_options = chrome_options)
scroll_width = 1600
scroll_height = 1500
driver.set_window_size(scroll_width, scroll_height)

这里的scroll_width和scroll_height是用来控制隐示浏览器的宽高(不增加宽高有些xpath会获取不到)

2.对input的数据进行一个clear

代码如下(示例):

def clear():
    driver.find_element_by_xpath('/html/body/div/div[2]/div/ng-form/div/div/div/div[2]/div[1]/form/fieldset/div[1]/div/input').clear()
    driver.find_element_by_xpath('/html/body/div/div[2]/div/ng-form/div/div/div/div[2]/div[1]/form/fieldset/div[2]/div/input').clear()
    driver.find_element_by_xpath('/html/body/div/div[2]/div/ng-form/div/div/div/div[2]/div[1]/form/fieldset/div[3]/div/input').clear()
    driver.find_element_by_xpath('/html/body/div/div[2]/div/ng-form/div/div/div/div[2]/div[1]/form/fieldset/div[4]/div/input').clear()

将原有的默认数据清空(直接send.keys输入并不会覆盖)
(用for循环可能会更清楚但是我实在太懒了)


3.精度数据的获取

代码如下(示例):

driver.get('http://ffxiv.tk/crafter/#/crafter-attributes')
    occupation()
    clear()
    level = input("请输入等级")
    Operation_accuracy = input("请输入作业精度")
    Machining_accuracy = input("请输入加工精度")
    Production_force = input("请输入制作力")
    #等级
    driver.find_element_by_xpath('/html/body/div/div[2]/div/ng-form/div/div/div/div[2]/div[1]/form/fieldset/div[1]/div/input').send_keys(level)
    #作业精度
    driver.find_element_by_xpath('/html/body/div/div[2]/div/ng-form/div/div/div/div[2]/div[1]/form/fieldset/div[2]/div/input').send_keys(Operation_accuracy)
    #加工精度
    driver.find_element_by_xpath('/html/body/div/div[2]/div/ng-form/div/div/div/div[2]/div[1]/form/fieldset/div[3]/div/input').send_keys(Machining_accuracy)
    #制作力
    driver.find_element_by_xpath('/html/body/div/div[2]/div/ng-form/div/div/div/div[2]/div[1]/form/fieldset/div[4]/div/input').send_keys(Production_force)
    #技能选择
    driver.find_element_by_xpath('/html/body/div/div[2]/div/ng-form/div/div/div/div[2]/div[2]/form/fieldset/legend/span/button[2]').click()

将精度,等级,技能填写。

3.求解器

代码如下(示例):

def Solver():
    i = 0
    solver_list = []
    driver.get('http://ffxiv.tk/crafter/#/solver')
    time.sleep(1)
    driver.find_element_by_xpath('/html/body/div/div[2]/div/ng-form/div/div/div[1]/div/form/div[2]/div/div/button').click()

    driver.find_element_by_xpath(f'/html/body/div/div[2]/div/ng-form/div/div/div[1]/div/form/div[2]/div/div/ul/li[{occupation_input}]/a').click()
    time.sleep(1)
    driver.find_element_by_xpath('//*[@id="recipe-menu-root"]/div[1]/div/button').click()
    Make = input("请输入你要制作的配方")
    driver.find_element_by_xpath('//*[@id="recipe-menu-root"]/div[1]/span').click()
    time.sleep(1)
    driver.find_element_by_xpath('//*[@id="recipe-search-text"]').send_keys(Make)
    time.sleep(1)
    driver.find_element_by_xpath('//*[@id="recipeSearchElement0"]').click()
    driver.find_element_by_xpath('/html/body/div/div[2]/div/ng-form/div/div/div[3]/div/button[1]').click()#开始
    driver.find_element_by_xpath('/html/body/div/div[2]/div/ng-form/div/div/div[5]/div/ul/li[3]').click()
    print("推算最优宏....")
    #time.sleep(60)
    while True:
        if driver.find_element_by_xpath('/html/body/div/div[2]/div/ng-form/div/div/div[3]/div/button[1]').text == "停止":
            break
    driver.find_element_by_xpath('/html/body/div/div[2]/div/ng-form/div/div/div[3]/div/button[2]').click()
    driver.find_element_by_xpath('/html/body/div/div[2]/div/ng-form/div/div/div[5]/div/div/div[3]/macros/form/div/div[1]/label/input').click()
    driver.find_element_by_xpath('/html/body/div/div[2]/div/ng-form/div/div/div[5]/div/div/div[3]/macros/form/div/div[2]/label/input').click()
    time.sleep(1)
    Macro = driver.find_element_by_xpath('/html/body/div/div[2]/div/ng-form/div/div/div[5]/div/div/div[3]/macros/div/textarea').text
    print(Macro)
    time_result = driver.find_element_by_xpath('/html/body/div/div[2]/div/ng-form/div/div/div[5]/div/div/div[3]/macros/div[1]/h6/small').text
    print("宏用时"+time_result)

将求解器启动,对于各个职业和职业内的素材进行选择。

3.selenium下拉框的选取

当初选取这个下拉框的时候可愁死我了,一直报错,以为是iframe结果并没有发现。然后又去百度,百度上的代码也不行。思来想去。

    driver.find_element_by_xpath(f'/html/body/div/div[2]/div/ng-form/div/div/div[1]/div/form/div[2]/div/div/ul/li[{occupation_input}]/a').click()
    time.sleep(1)

发现!选取到下拉框之后需要sleep 1秒钟,折磨了半天呀,原来问题这么简单!!

感谢各位看完,如果有写的不好的还请多多包涵多给点建议qwq
### 回答1: 习编程语言通常需要以下几个步骤: 1. 了解编程语言的基本概念,包括变量、流程控制、数据类型等。 2. 安装并配置编程环境,包括编辑器、调试器等工具。 3. 习编程语言的基本语法和语义,包括变量定义、循环、条件判断等。 4. 尝试编写一些简单的程序,加深对编程语言的理解。 5. 习编程语言的高级特性,包括函数、类、模块等。 6. 练习编写实际应用的程序,提高编程能力。 在习过程中,可以通过阅读书籍、观看视频、参加在线课程或者实战项目等方式获取知识和经验。建议多做练习题,不断提高自己的编程能力。 ### 回答2: 一门编程语言是一个漫长的过程,需要耐心和不断的练习。以下是习编程语言的一些建议。 首先,选择一门适合初者的编程语言,比如PythonPython语言具有易易用的特点,适合初者上手。 其次,了解编程语言的基本概念和语法规则。可以通过阅读相关的书籍、教程或在线教育平台来习。这些资源可以帮助你掌握编程语言的基础知识。 第三,实践是掌握编程语言的关键。通过编写简单的程序来应用所知识,理解编程语言的运行机制和逻辑。可以选择一些小项目来实践,例如编写一个简单的计算器或者实现一个简单的游戏。 第四,与其他编程爱好者交流。参与到相应的社区和论坛中,与其他习者或经验丰富的程序员交流,分享经验和习资源。在交流中可以获得更多的知识和解决问题的方法。 第五,持续习和更新知识。编程语言和技术在不断发展,你应该保持习的动力和热情,了解最新的编程语言特性和编程技巧。阅读专业书籍、参加开发者大会或者参与技术培训等都是不错的习途径。 总结起来,一门编程语言需要掌握基本概念和语法规则,通过实践来巩固所知识,并与他人交流和习。通过持续的习和更新知识,逐渐成为一名熟练的程序员。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值