用chatgpt学习pythonwebUI自动化

一、使用背景

之前写过java+selenium的web UI自动化,使用的selenium是偏老版本的,另外python初学,还不会使用。但在java编写的经历中,有几个概念:

1、需要使用测试框架,对测试用例进行生命周期管理,例如用例的执行,运行的先后顺序依赖关系之类。java的testNG比较强大,类似的测试框架,python的初步调研,决定使用pytest。

2、需要使用PageObject模式,能对变动频繁的元素定位剥离出来。 基于以上2个述求,一个方案是自己摸索来写、另一种是在网上找一个成熟的工程来学习。

困难点:

1、自己摸索,需要先自我科普一下pytest的知识,发现功能很强大,且很灵活,一下子记不住也看不完所有的功能。于是先挑选了最基本的语法,fixture是干什么的。

2、找到一个成熟的工程来学习,很全面,但是试着运行了一下,有很多跑不通,一时间需要各种定位,比较花时间,且有点焦头烂额。

二、使用chatgpt辅助学习

使用AI打辅助,是一个中间状态,通过AI给一个渐进的完整代码块,减少成熟工程中太多东西一时半解带来的耗时,可以提高学习的效率。

首先,最小业务单元

使用python和selenium写个登录脚本

 
from selenium import webdriver
browser = webdriver.Chrome()
browser.get('https://www.baidu.com')
browser.find_element("id", "kw").send_keys("哈哈")

其次,加入pytest

这个时候请教一下chatgpt,给它输入prompt:

使用pytest,python语言编写https://www.baidu.com/ 页面的登录webUI脚本

如下是代码全文:

import pytest
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC@pytest.fixture(scope="module")
def browser():driver = webdriver.Chrome()yield driverdriver.quit()def test_baidu_login(browser):browser.get("https://www.baidu.com/")login_button = WebDriverWait(browser, 10).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="s-top-loginbtn"]')))login_button.click()username_input = WebDriverWait(browser, 10).until(EC.presence_of_element_located((By.XPATH, '//*[@id="TANGRAM__PSP_10__userName"]')))password_input = WebDriverWait(browser, 10).until(EC.presence_of_element_located((By.XPATH, '//*[@id="TANGRAM__PSP_10__password"]')))# Replace with your actual username and passwordusername_input.send_keys("your_username")password_input.send_keys("your_password")submit_button = WebDriverWait(browser, 10).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="TANGRAM__PSP_10__submit"]')))submit_button.click()# Add assertions to verify the login was successful
 

最后,基于上下文再加入pageObject

再次请教chatgpt,给它输入prompt: 以上代码,需要考虑使用page object模式,该怎么优化

这点比较让人惊讶,可以如此自然地理解中文的且偏自然语言的上下文,amazing!!

import pytest
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as ECclass LoginPage:def __init__(self, driver):self.driver = driverself.username_input = (By.XPATH, '//*[@id="TANGRAM__PSP_10__userName"]')self.password_input = (By.XPATH, '//*[@id="TANGRAM__PSP_10__password"]')self.submit_button = (By.XPATH, '//*[@id="TANGRAM__PSP_10__submit"]')def login(self, username, password):username_input = WebDriverWait(self.driver, 10).until(EC.presence_of_element_located(self.username_input))password_input = WebDriverWait(self.driver, 10).until(EC.presence_of_element_located(self.password_input))submit_button = WebDriverWait(self.driver, 10).until(EC.element_to_be_clickable(self.submit_button))username_input.send_keys(username)password_input.send_keys(password)submit_button.click()class HomePage:def __init__(self, driver):self.driver = driverself.login_button = (By.XPATH, '//*[@id="s-top-loginbtn"]')def go_to_login_page(self):login_button = WebDriverWait(self.driver, 10).until(EC.element_to_be_clickable(self.login_button))login_button.click()return LoginPage(self.driver)@pytest.fixture(scope="module")
def browser():driver = webdriver.Chrome()yield driverdriver.quit()def test_baidu_login(browser):browser.get("https://www.baidu.com/")home_page = HomePage(browser)login_page = home_page.go_to_login_page()login_page.login("your_username", "your_password")# Add assertions to verify the login was successful
 

三、总结

感受最深的是,通过chatgpt输入时,尽量给出多组合的信息,可以少走了一些弯路。

若通过百度搜索,查到的可能是一些较老的信息,对新学的同学非常不利,例如很多demo代码里给出的selenium 元素定位语法还是老的,而我用的是selenium较新的4.9.1,已经没有find_element_by_id()这种定位方式了,别问我怎么知道,问就是踩到了坑。

以上的渐进式学习,让我逐步掌握了pytest和pageObeject模式的第一步,清晰明了,后续我就可以在这个基础上,自己往上添加我的业务脚本了,nice job!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/33837.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

图解国家网信办《生成式人工智能服务管理办法(征)》| 附下载

伴随ChatGPT兴起,生成式人工智能技术正作为一种创造性应用,牵引场景创新,推动新技术迭代升级和产业快速增长。由于生成式人工智能处于发展初期,技术成熟度、政策合规性等发展不足,导致其极易面临非法获取数据、个人隐私…

中期答辩干什么?

时光飞逝,又到了许多小伙伴们要进行中期答辩的时候了。对于初次接触中期答辩的小伙伴,一定都感觉到非常的陌生。当我们遇到问题的时候该怎么办呢?欸!对了,应用三个“W”原则: 1. 为什么? 2…

高质量毕业答辩PPT模板+PPT网站

文章目录 前言一、iSlide二、office plus三、优品PPT总结 前言 提示:这里可以添加本文要记录的大概内容: 又是一年毕业季,又到了快要答辩的时候,最近有一些小伙伴找我要毕业答辩PPT模板,本着这不能拒绝啊的心态&…

深圳大学毕业答辩PPT模板

模板介绍 一份高质量的PPT模板,可以让你在日常的工作中展示自我、脱颖而出、去赢得更多机会,今天小编分享一份精美的深圳大学毕业答辩PPT模板 PPT模板名称:深圳大学毕业答辩PPT模板,模板编号:P84774,大小1…

毕业论文答辩ppt怎么写?

一份好的毕业答辩PPT模板能给你毕业成绩加分不少,在制作ppt模板的过程中,需要注意些什么呢?ppt模板制作一定不要太花哨!语言尽量精炼,突出重点,避免长篇大论。下面ppt家园就来介绍一下毕业论文答辩ppt内容怎…

东南大学本 硕 博论文中期答辩 毕业答辩ppt模板2021版

东南大学本硕博开题、中期、毕业论文答辩ppt模板 ppt模板样式如下: 如果对您有用 ,欢迎点赞,关注和收藏,谢谢各位路官。 下载地址 https://download.csdn.net/download/Vertira/19026191

【答辩问题】计算机专业本科毕业设计答辩详细指导

下面是总结的一些答辩期间的问题(结合论文中出现过的整理) 1、答辩一般流程是,演示PPT演讲,答辩老师问答,演示系统(具体咨询自己导师) 2、答辩老师一般不懂比较新的技术,只知原理&am…

毕业答辩ppt怎么做?

毕业答辩ppt怎么做?毕业论文答辩ppt很多学生毕业的大难题,毕业答辩ppt怎么做其实不是没有章法可寻,这里就给大家介绍一下。 一、内容上,毕业论文答辩ppt内容怎么包含以下几点: 1、封面:写清楚姓名、班级、学…

软件分享:图片加水印用什么软件?

现在很多小伙伴都喜欢分享图片或视频到社交平台去,而我也不例外。网络的便捷,让我们可以随时接收到五湖四海的信息和资讯,但也因为它的这个特点,让我们发布的东西被他人盗用的可能性增加了许多。因此,很多小伙伴为了提…

七牛 java 加水印_图片水印处理(watermark)

注意: watermark 接口支持的最大 gif 帧数为 200,超过 200,处理结果只返回原图。 图片水印 接口规格 注意: 接口规格不含任何空格与换行符。 watermark/1 /image/ /dissolve/ /gravity/ /dx/ /dy/ /ws/ /wst/ 参数名称 必填 说明 …

水印watermark

第一步:npm获取水印组件包 npm install watermark-dom 第二步:引入水印模块 import watermark from ‘watermark-dom’ 或者 var watermarkDom require(“watermark-dom”) 根据业务需要,我是登入之后的页面才有水印,前者我是放在验证用户登录状态js文件…

图片怎么加水印?这些软件你知道吗?

我们有时候在平台上分享图片,难免会遇到自己的成果被他人随意转载以及盗用,所以在自己的图片上添加水印就显得很重要了。这样可以较好的保护自己的图片不受他人侵犯,防止盗图现象再次发生。那我们怎么给图片加水印呢?今天和大家分…

【php】图片水印处理

注:最后有面试挑战,看看自己掌握了吗 文章目录 图片水印处理一、简单图片水印二、做一个智能的图片水印函数 🍃博主昵称:一拳必胜客 🌸博主寄语:欢迎点赞收藏关注哦,一起成为朋友一起成长; 特别…

怎样在图片上添加水印?这份水印处理教程快来收好

不管是自己设计的海报,还是摄影作品,在发布到平台之前,我们都很有必要为图片加上自己的水印,以此保护其不被他人恶意盗取。可能还有些小伙伴不知道图片如何加水印,没关系,下面我给大家分享几个实用方法&…

图片隐写,盲水印,加密logo

1.定义 隐写术算是一种加密技术,权威的 wiki 说法是“ 隐写术是一门关于信息隐藏的技巧与科学,所谓信息隐藏指的是不让除预期的接收者之外的任何人知晓信息的传递事件或者信息的内容。” example: 钱图(钱上面的水印&#xff0…

工具分享:图片水印工具(WaterMarker)

给大家分享个水印工具,由于公司不能装第三方工具。没办法,只能自己做个工具来用用。该工具的效果如下: 程序界面 配置水印信息 预览水印效果 图片处理状态 被打上水印后的效果 源码下载 CodePlex

不知道图片添加水印软件有哪些?推荐这三款给图片加水印的软件

各位画手大大有没有遇到过这种情况,自己好不容易画好的稿子想发布到一些网络平台上引流,但是图片又很容易被盗用,这个时候我们需要借助一些软件给自己的画稿加上自己的水印防止被盗,那你知道图片添加水印软件有哪些吗?…

张朝阳挺了过来

2017年第四届世界互联网大会期间的张朝阳 本文写于2002年。 2002年1月10日晚,北京恭王府内高朋满座,搜狐2001十大新闻颁奖典礼正在这里进行。重新看到久违的隆重场面,张朝阳无法抑制住自己的兴奋,他说:“如果北京有上流…

张朝阳与二马或其他

张朝阳手推质能方程 没地方继续推导了,擦黑板前还要感慨一句“不忍心擦掉”。 张朝阳1993年底在美国麻省理工学院(MIT)获得了博士学位,并在MIT从事博士后研究。 毕业这么多年了,当初学的东西,还能以这种…

腾讯会议如何使用讲演者模式进行汇报(nian gao)

腾讯会议如何使用讲演者模式进行汇报(nian gao) 首先列出步骤,再一一演示: altf5 开启讲演者模式,调整讲演者模式的窗口为小窗alttab 切换回腾讯会议界面,屏幕共享power point窗口(注意不是“…