IDE自动化脚本实现

案列:打开百度浏览器,在浏览器中搜索bing,点击搜索,进入官网bing的搜索目录,在bing浏览器中搜索python,点击搜索,在查到的结果中找到python官网,进入。

经过以上流程,输出的自动化脚本修改后如下:

# -*- coding: utf-8 -*-
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import NoSuchElementException
from selenium.common.exceptions import NoAlertPresentException
import unittest, time, re


class Idedem(unittest.TestCase):
    def setUp(self):  # unittest开始
        self.driver = webdriver.Firefox()  # 定义驱动
        self.driver.implicitly_wait(30)  # 设置隐士等待
        self.base_url = "https://www.baidu.com/"  # 初始化url
        self.verificationErrors = []  # 异常
        self.accept_next_alert = True  # 默认设置弹框为确定
        self.switch_handle = self.switch_handle  # 自定义切换句柄

    def switch_handle(self):
        """切换句柄"""
        driver = self.driver
        headles = driver.window_handles
        driver.switch_to.window(headles[-1])

    def test_idedem(self):
        """自动化录制脚本流程"""
        driver = self.driver
        driver.get(self.base_url + "/")
        driver.find_element_by_id("kw").click()  # 定位搜索框并点击
        driver.find_element_by_id("kw").clear()  # 清空
        driver.find_element_by_id("kw").send_keys("bing")  # 在搜索框输入bing
        driver.find_element_by_id("su").click()  # 点击百度一下
        driver.find_element_by_xpath(".//*[@id='1']/h3/a[1]").click()  # 定位bing搜索框并点击
        self.switch_handle()  # 切换句柄
        driver.find_element_by_id("sb_form_q").clear()  # 清空
        driver.find_element_by_id("sb_form_q").send_keys("python")  # 在搜索框输入python
        driver.find_element_by_id("sb_form_go").click()  # 点击发送
        self.switch_handle()  # 切换句柄
        driver.find_element_by_link_text("Welcome to Python.org").click()  # 选择python官网进入
        print("执行成功")

    def is_element_present(self, how, what):
        """:param
        how: 如何定位元素
        what:定位元素的值是什么
        """
        try:
            self.driver.find_element(by=how, value=what)
        except NoSuchElementException as e:
            return False
        return True

    def is_alert_present(self):
        """弹框相关操作"""
        try:
            self.driver.switch_to.alert()
        except NoAlertPresentException as e:
            return False
        return True

    def close_alert_and_get_its_text(self):
        """弹框的确认与关闭选择"""
        try:
            alert = self.driver.switch_to.alert()
            alert_text = alert.text
            if self.accept_next_alert:
                alert.accept()
            else:
                alert.dismiss()
            return alert_text
        finally:
            self.accept_next_alert = True

    def tearDown(self):  # 结束
        # self.driver.quit()
        # self.assertEqual([], self.verificationErrors)
        pass


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

posted @ 2021-06-15 18:42  醉魔君  阅读(75)  评论(0编辑  收藏  举报