Web自动化测试(4)-关键字驱动

关键字驱动

1、简介

在进行自动化测试程序的设计时,为了解决代码冗余、可读性差、复用性低以及维护成本高的问题,常常需要采用更高效的设计模式,目前主要有关键字驱动与POM设计模型两种框架设计模式,其中关键字驱动的设计模式出现较早,主要是利用关键字对selenium接口进行二次封装,测试环境的不同步骤就转换为不同的关键字,提高了代码的可读性、复用性以及可维护性,降低了代码冗余。

2、简单示例

对百度搜索的基本功能进行封装,主要实现输入特定内容,获取搜索结果,打印结果的名称与链接,并打开对应网页,具体代码如下:

from selenium import webdriver
from selenium.webdriver.common.by import By
class KeyWordsTest:
    # 打开浏览器
    def open_browser(self,browser):
        browser = browser.capitalize()
        if browser in ["Chrome","Edge","Firefox"]:
            ##利用反射的方式获取浏览器驱动
            self.driver = getattr(webdriver,browser)()
            self.driver.maximize_window() #窗口最大化
            self.driver.implicitly_wait(5)
        else:
            raise ValueError("未检测到支持的浏览器类型")
    # 加载网页
    def load_url(self,url):
        self.driver.get(url)
        self.driver.implicitly_wait(5)
    # 定位元素
    def locate_element(self,loc):
        # 使用*提取元组中的元素
        return self.driver.find_element(*loc)
    # 定位元素列表
    def locate_elements(self,loc):
        # 使用*提取元组中的元素
        return self.driver.find_elements(*loc)
    #输入信息
    def input(self,loc,value):
        self.locate_element(loc).send_keys(value)
        self.driver.implicitly_wait(1)
    #点击操作
    def click(self,loc):
        self.locate_element(loc).click()
        self.driver.implicitly_wait(5)
if __name__ == '__main__':
    content = 'selenium'
    ktest = KeyWordsTest()
    ktest.open_browser("edge")
    ktest.load_url("https://www.baidu.com/")
    ktest.input((By.ID,"kw"),content)
    ktest.click((By.ID,"su"))
    results = ktest.locate_elements((By.XPATH,"//a[contains(string(), \'%s\')]"%(content)))
    for result in results:
        if result.get_attribute("href"):
            print(result.get_attribute("text").strip())
            # 搜索结果的标题
            title = result.get_attribute("text").strip()
            # 搜索结果的网址
            link = result.get_attribute("href")
            print(f"Title: {title}, link is: {link} \n")
            result.click()

3、使用Chrome 浏览器查找元素对应的XPath 或 CSS Selector

在 Chrome 浏览器中使用开发者工具可以快速查找页面元素的 XPath 或 CSS Selector,具体步骤如下:

  1. 打开需要查找元素的网页,在页面上右键单击,选择“检查”或按快捷键 F12,打开 Chrome 开发者工具。
  2. 在开发者工具的 Elements 标签页中,将鼠标移动到要查找的元素上,该元素会被高亮显示。
  3. 在选中的元素上右键单击,选择“Copy”,再选择“Copy XPath”或“Copy selector”,即可复制该元素的 XPath或 CSS Selector。

注意事项:

  1. XPath 与 CSS Selector 都是用于定位页面元素的方法,但两者的语法和定位逻辑略有不同。如果您对 XPath 和 CSS Selector 还不够熟悉,建议先学习一下相关基础知识。
  2. 在使用 XPath 或 CSS Selector 定位元素时,应尽量避免使用过于复杂的表达式,尽可能地简化表达式,以提高定位精度和效率。

4、快速查找页面元素的xpath或css Selector

在上述实验中可以看出,搜索结果的xpath或者css selector的提取比较繁琐,如何快速有效地找到不同搜索结果通用的xpath或者css selector成为首先要解决的问题。因此可以在浏览器的扩展应用商店中输入xpath或者css selector查找相应的扩展,安装完成即可,此处以xpath selector插件为例,点击插件,此时在浏览器上方会出现如下显示窗口:
在这里插入图片描述

接着按着shift按钮,将鼠标左键放置在搜索结果上即可出现xpath或者css selector的字符串,也可以点击红色框中的按钮自行修改,修改完成后被选中的搜索结果会高亮显示。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星空下的仰望者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值