Selenium
文章平均质量分 72
LSQ的测试日记
这个作者很懒,什么都没留下…
展开
-
面试_Selenium常见问题
6.HTTP Server又将结果返回给Selenium的脚本,如果是错误的http代码我们就会在控制台看到对应的报错信息。2.webDriverWait(driver,10) 在给定的时间内如果拿到元素就继续,拿不到会报错。1.对于每一条Selenium脚本,一个http请求会被创建并且发送给浏览器的驱动。2.浏览器驱动中包含了一个HTTP Server,用来接收这些http请求。3.HTTP Server接收到请求后根据请求来具体操控对应的浏览器。5.浏览器将步骤执行结果返回给HTTP Server。原创 2023-01-29 10:05:28 · 3146 阅读 · 0 评论 -
WEB UI自动化测试框架搭建(一)_公用方法Utils
首先,WEB UI自动化框架的搭建以selenium为基础,需要了解一些基本用法:https://blog.csdn.net/qq_38175040/category_10942237.html前言我们以如下一段代码为例,刚刚初学完selenium的人差不多都是这样写的吧:from selenium import webdriverimport timedriver = webdriver.Chrome()driver.get('https://mail.163.com/')i_frame =原创 2021-04-14 20:22:52 · 3497 阅读 · 3 评论 -
WEB UI自动化测试框架搭建(二)_PO模式三层框架
书接上文:原创 2021-04-19 08:56:01 · 2914 阅读 · 5 评论 -
WEB UI自动化测试框架搭建(三)_记录项目内各文件path的Config模块
之前的文章中以登录为例:WEB UI自动化测试框架搭建(二)其中的用户名和密码都是手动输入的,但在现实操作过程中可能不是这样,诸如用户名和密码我们可能是从文件中读取的而非手动输入的。一.ConfigFiles模块还是在My_WEB_UI项目下新建一个ConfigFiles模块,然后在模块下创建一个elementLocation.ini文件。ini文件下有若干个节,每个节下面有若干个键值对,;后是注释[section] ----------节my_na原创 2021-04-20 10:19:40 · 762 阅读 · 1 评论 -
WEB UI自动化测试框架搭建(四)_数据驱动
上一篇实现了将读取页面内元素所需的type和type名存入ini文件中,并读取,然后操作页面成功。但是登录时填入的用户名和用户密码还是手动输入的。这样不好。我们写一个excel文件,用户名,密码等都从中读取。一.数据驱动比如在测试登录时,除了正确的用户名和密码,我们还可能输入错误的密码,密码为空等多种情况。和正确的一组用户名密码相比,仅仅是输入的数据不一样,我们不可能因为有n种的输入组合就将代码重复n遍。这就是数据驱动的作用,将数据与代码分离。登录行为的代码独立,需要用到不同组合的用户民密码到原创 2021-04-27 21:29:54 · 566 阅读 · 2 评论 -
WEB UI自动化测试框架搭建(五)_断言,log日志模块
上篇文章实现了数据驱动,接下来对使用数据之后的结果进行判定(先不使用unittest等框架,纯手写)一.手动断言加上如下这段代码就是一个简单的断言了。根据except_result来判断将要进行的判定:如果是登录成功,就判断页面内id为spnUid的元素值是否为用户名如果是登录失败,判定下图所取元素的值是否为账号或密码错误。亲测这边使用id定位会报错,所以我用的是xpath来定位。判定成功后在字典的最后一位写入结果,不过这里仅仅是写入字典而已,我们应该写入excel。在ExcelOp原创 2021-04-28 21:48:39 · 1364 阅读 · 1 评论 -
WEB UI自动化测试框架搭建(六)_unittest框架组织测试用例,生成测试报告
一.unittest框架基本概念:testcase 测试用例,以test开头,执行顺序会按照方法名的ASCII码值来排序test fixture 测试固件test suite 测试套件,testloader把需要一起执行的测试用例加载到套件中,然后一起执行test runner 执行测试用例并返回测试结果常见断言:assertEqual(a,b,msg=None) 判断a和b是否相等 assertNotEqualassert原创 2021-04-29 22:05:40 · 924 阅读 · 1 评论 -
WEB UI自动化测试框架搭建(七)_ddt,邮件发送测试报告
一.发送邮件功能在公共方法包Utils下新建个SendMails.py文件原创 2021-04-30 19:23:08 · 463 阅读 · 4 评论 -
关键字驱动测试框架(一)_根据关键字创建函数
之前的七篇都是数据驱动的WEB UI自动化测试框架,现在学习并记录一下关键字驱动的测试框架。这两者在实现技术上可能没有太本质的区别,都是以selenium为核心,但在实现逻辑和思想上可能有较大的区别。一.关键字驱动框架介绍关键字驱动框架:步骤:一个用例需要进行n步的操作步骤才能完成,而每个操作步骤都有可能用到以下三个关键字对象:操作的页面或元素,如用户名输入框动作:对对象进行的动作,如点击登录按钮,输入文字数据:对象操作所用到的值,如用户名密码等以登录163邮箱为例,操作步骤如下:1.打原创 2021-05-05 19:22:01 · 585 阅读 · 5 评论 -
关键字驱动测试框架(二)_执行excel
关键字函数封装好了接下来就是写测试脚本了。一.测试脚本在TestCases包下面创建文件,然后还是老样子,要获取excel表格里的数据,因此我们在文件里创建一个操作excel的对象先读取excel里第一个sheet,也就是测试用例,如果里面的每一行的是否执行为y,那就根据这一行里sheet名数据去读取对应的sheet到这一步为止的代码如下:读取到login这个sheet之后,接下来就是根据该sheet里的内容来写测试步骤了。相应的代码在前一个项目WEB UI里面已经写过一次了。继续写,获取原创 2021-05-09 10:23:02 · 385 阅读 · 1 评论 -
混合驱动测试框架(一)_读取并操作excel
之前的前七篇写了数字驱动框架,然后又写了两篇关键字驱动框架数字驱动框架:侧重于单个接口或者单个功能的测试,重复自动化输入多组数据关键字驱动框架:侧重于自动化一套完整的流程关键字驱动框架的篇幅比较少,因为其中的大多数只是在数字驱动框架里都已经用过了。在这边大概还是用两篇的篇幅讲一下混合驱动框架,就是中间有直接走流程的部分,也有多组数据测试一个功能或接口。一.还是先加一些基本的功能,如Utils,ConfigFiles等通用功能(三个框架都要用到)...原创 2021-05-12 13:36:51 · 373 阅读 · 1 评论 -
混合驱动测试框架(二)_eval执行函数表达式
上一篇已经把添加联系人的测试用例写好了。原创 2021-05-12 21:34:33 · 190 阅读 · 0 评论 -
Selenium元素定位(五)
我在登录163邮箱后实现自动化发送邮件的过程中又遇到了一些问题,在此记录一下先附上完整代码import timefrom selenium import webdriverdriver = webdriver.Chrome()driver.get('https://mail.163.com/')driver.maximize_window()iframe = driver.find_element_by_tag_name('iframe')driver.switch_to.frame(原创 2021-05-08 11:02:19 · 159 阅读 · 0 评论 -
Selenium元素定位(四)
在登录163邮箱时,如果输入用户名/密码错误,会在输入框下方报出提示:账号或密码错误。我想要定位这个元素,获取账号或密码错误这个字段。起初我直接试图用id定位,结果报错找不到这个元素。会不会是点击登录后加载过慢,于是我就在click代码下强制sleep几秒,结果还是报错。然后我觉得这个div是在输入错误用户名密码后才会出现,就用了is_displayed这个方法,结果还是报找不到该元素。最后使用了xpath定位的方法。复制这个div全部得绝对路径:然后改写一下代码:from selen原创 2021-04-28 20:47:00 · 151 阅读 · 0 评论 -
Selenium(三)_窗口切换,iframe内元素定位等
一.窗口切换在实际自动化操作的过程中,我们可能操作浏览器打开很多窗口。首先我们使用selenium自动化打开百度。然后我们获取当前的窗口,打印。以一串字符串的形式显示。我们使用selenium搜索米兰,打开一个新的窗口。并打印此时所有的窗口。我们想要点击新开窗口的首页超链接。加上代码driver.switch_to.window(all_handles[-1]) 切换到第二个窗口,然后就能点击首页超链接。我们可以使用all_handles = driver.window_handle原创 2021-04-13 20:55:46 · 475 阅读 · 0 评论 -
Selenium(二)_控件定位及简单操作
以百度页面为例:定位控件的方法1.通过id来定位(唯一 ,不能定位到多个)driver.find_element_by_id('kw').send_keys('药家鑫')driver.find_element(by='id',value='kw').send_keys('药家鑫')2.通过name来定位通过name 一个元素控件driver.find_element_by_name('wd').send_keys('药家鑫')driver.find_element(by='name',v原创 2021-04-07 08:53:46 · 423 阅读 · 0 评论 -
Selenium(一)_安装及启动
1.安装安装只需要使用pip命令即可。pip install selenium2.初步启动并访问浏览器Selenium需要驱动程序才能与所选浏览器交互。例如,Chrome需要安装chromedriver,然后才能运行自动化。确保将它放入Path中,否则将给您一个错误 selenium.common.exceptions.WebDriverException:消息:“ chromedriver”可执行文件需要放在PATH中。Chrome 的webdriver 参考下载地址:http://c原创 2021-04-02 17:50:31 · 695 阅读 · 0 评论