需求任务:新建文章:写内容时注意iframe的切入和切出还有发布成功时有一个浮窗
删除文章:注意鼠标的移动以及文章的统计数量

页面:
新增页面:

删除页面:

浮窗怎么不消失:
点击发布后点击暂停就好这样就可以定位了

上代码:
再basic目录下新建一个文件test_category.py文件

#

#增加文章和删除文章,重点是iframe的切入和切出以及弹窗的定位
from selenium.webdriver import ActionChains
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from time import sleep

class TestArticle(object):
    #还是需要先登录
    def __init__(self, login):
        self.login = login

    # 测试添加文章
    def test_add_ok(self):
        title = '我的文章test'
        content = '我的文章内容'
        expected = '保存成功!'

        #点击文章
        self.login.driver.find_element_by_xpath('//*[@id="article"]/a/span').click()
        sleep(1)
        #点击撰写文章
        self.login.driver.find_element_by_xpath('//*[@id="edit"]/a').click()
        sleep(1)
        #填写文章标题
        self.login.driver.find_element_by_id('title').send_keys(title)

        frame1 = self.login.driver.find_element_by_xpath('//*[@id="textarea_ifr"]')
        # 切入iframe
        self.login.driver.switch_to.frame(frame1)

        sleep(1)

        self.login.driver.find_element_by_xpath('//*[@id="tinymce"]').send_keys(content)

        # 切出(为了定位发布按钮)
        self.login.driver.switch_to.default_content()

        #点击发布按钮
        self.login.driver.find_element_by_xpath('//*[@id="form"]/div/div[2]/div[1]/div/button[2]').click()

        #这个是浮窗的定位
        loc = (By.CLASS_NAME, 'toast-message')

        WebDriverWait(self.login.driver, 5).until(EC.visibility_of_element_located(loc))

        msg = self.login.driver.find_element(*loc).text

        assert msg == expected


    # 测试删除单个文章
    def test_delete_one_article_ok(self):
        # 点击文章
        self.login.driver.find_element_by_xpath('//*[@id="article"]/a/span').click()
        sleep(1)
        #点击所有文章
        self.login.driver.find_element_by_xpath('//*[@id="list"]/a').click()
        sleep(1)
        # 删除前文章数  统计复选框
        article_num = article_num = len(self.login.driver.find_elements_by_class_name('dataItem'))

        print(article_num)

        link = self.login.driver.find_element_by_xpath(
            '//*[@id="form"]/table/tbody/tr[1]/td[2]/strong/a/span')
        #鼠标移动到这个位置  鼠标键盘的操作
        ActionChains(self.login.driver).move_to_element(link).perform()

        sleep(1)

        #回收到垃圾箱
        del_elem = self.login.driver.find_element_by_xpath(
            '//*[@id="form"]/table/tbody/tr[1]/td[2]/div/p/span[3]/a')
        del_elem.click()

        sleep(1)

        # 删除后文章数
        article_num2 = article_num = len(self.login.driver.find_elements_by_class_name('dataItem'))


        #断言删除后的条数+1等于删除前的条数
        assert article_num == article_num2 + 1


main函数中

from testcases.basic.test_user_login import TestUserLogin
from testcases.basic.test_article import TestArticle
if __name__ == '__main__':
 #添加删除文章
    #先登录成功
    login=TestUserLogin()
    login.test_user_login_ok()
    #添加文章
    case04=TestArticle(login)
    case04.test_add_ok()
    #删除文章
    #case04.test_delete_one_article_ok()

搞定!!!

本文地址:https://blog.csdn.net/weixin_49855251/article/details/111880780