使用 Selenium 编写公共类,可以有效提高代码复用性和可维护性。本文将介绍一些常用的方法,用于验证元素是否存在、判断按钮可点击、输入文本框以及下载文件等操作。

1. 验证元素是否存在

def is_element_exists(self, driver, locator):
    """判断元素是否存在"""
    try:
        driver.find_element(*locator)
        return True
    except NoSuchElementException:
        return False

2. 判断元素是否可点击

def is_element_clickable(self, driver, locator):
    """判断元素是否可点击"""
    try:
        element = WebDriverWait(driver, 10).until(EC.element_to_be_clickable(locator))
        return element.is_enabled()
    except TimeoutException:
        return False

3. 输入文本到文本框

def input_text(self, driver, locator, text):
    """输入文本到文本框"""
    try:
        element = driver.find_element(*locator)
        element.clear()
        element.send_keys(text)
        return True
    except NoSuchElementException:
        self.add_record(False, class_name, Operate.INPUT_TEXT.value, LogErrorMsg.ELEMENT_NOT_FOUND, locator)
        return False

4. 记录元素不存在

def record_element_not_found(self, class_name, operation, locator):
    """记录元素不存在"""
    self.add_record(False, class_name, operation.value, LogErrorMsg.ELEMENT_NOT_FOUND, locator)

使用示例

# 判断文本框是否存在,若存在,输入文本
if self.is_element_exists(driver, locator):
    self.input_text(driver, locator, text)
else:
    self.record_element_not_found(class_name, Operate.INPUT_TEXT, locator)

# 判断按钮是否存在,若存在,判断按钮是否可点击
if self.is_element_exists(driver, locator):
    if self.is_element_clickable(driver, locator):
        # 点击按钮
        pass
    else:
        # 记录按钮不可点击
        pass
else:
    # 记录按钮不存在
    pass

注意:

  • 这只是一个示例,你可以根据实际情况进行修改和扩展。
  • 你可能需要导入以下依赖项:
from selenium.common.exceptions import NoSuchElementException, TimeoutException
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

其他方法

  • **判断连接能否点击,可点击就下载:**可以使用 driver.find_element(By.LINK_TEXT, '下载链接').click() 方法点击链接,并使用 driver.find_element(By.XPATH, '//a[@href="下载链接"]') 获取下载链接。
  • **点击下载,判断下载是否完成:**可以使用第三方库 selenium-wirewebdriver-manager 来监控下载过程。
  • **记录失败记录:**可以使用日志库 logging 记录错误信息,并提供详细的错误位置和原因。

总结

通过编写公共类,我们可以有效地组织代码结构,提高代码复用性和可维护性。本文介绍了一些常用的元素验证方法,并提供了错误记录和重试机制,帮助你更好地构建自动化测试框架。你可以根据实际情况进行调整和扩展,以满足你的测试需求。

Selenium 公共类编写:验证元素存在、点击、输入文本和下载

原文地址: https://www.cveoy.top/t/topic/qbEU 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录