Selenium 高亮显示操作元素

一、代码

使用 https://www.cnblogs.com/TSmagic/p/16595168.html 此篇代码即可

 

二、编辑 test_ys_case.py 文件

# coding: utf-8
import unittest
from time import sleep
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 EC

class TS_baidu(unittest.TestCase):
    """百度搜索 Demo"""

    @classmethod
    def setUpClass(cls):
        cls.imgs = []
        cls.driver = webdriver.Chrome()
        cls.driver.maximize_window()
        cls.wait = WebDriverWait(cls.driver, 10)

    @classmethod
    def tearDownClass(cls):
        cls.driver.quit()

    def get_screenshot(self):
        self.imgs.append(self.driver.get_screenshot_as_base64())
        return True

    def highLightElement(self, element, colors=("black", "red"), border_px=3, pause=0.8):
        # 简单闪烁高亮:黑->红->恢复
        for color in colors:
            self.driver.execute_script(
                "arguments[0].setAttribute('style', arguments[1]);",
                element,
                f"border: {border_px}px solid {color};"
            )
            sleep(pause)
        self.driver.execute_script("arguments[0].setAttribute('style', arguments[1]);", element, "")

    def test_a_opurl(self):
        """打开网址"""
        try:
            self.driver.get("https://www.baidu.com")
            self.wait.until(EC.visibility_of_element_located((By.ID, "su")))
            print("打开网址成功")
            self.get_screenshot()
        except Exception as e:
            print(f"打开网址失败: {e}")
            self.get_screenshot()
            self.fail(e)

    def test_b_input(self):
        """输入搜索内容"""
        try:
            kw = self.wait.until(EC.visibility_of_element_located((By.ID, "kw")))
            kw.send_keys("请看右侧的 → 按钮边框")
            print("输入搜索内容成功")
            self.get_screenshot()
        except Exception as e:
            print(f"输入搜索内容失败: {e}")
            self.get_screenshot()
            self.fail(e)

    def test_c_clbutton(self):
        """点击百度一下按钮"""
        try:
            btn = self.wait.until(EC.element_to_be_clickable((By.ID, "su")))
            self.highLightElement(btn)
            btn.click()
            sleep(2)  # 可换成等待结果列表可见
            print("点击按钮成功")
            self.get_screenshot()
        except Exception as e:
            print(f"点击按钮失败: {e}")
            self.get_screenshot()
            self.fail(e)

if __name__ == "__main__":
    unittest.main()

 

三、效果

         to be continued...

posted @ 2022-08-18 11:07  莲(LIT)  阅读(218)  评论(0)    收藏  举报