欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

selenium完成添加删除案例:iframe的切入和切出以及鼠标移动操作运用

程序员文章站 2022-03-10 22:24:27
需求任务:新建文章:写内容时注意iframe的切入和切出还有发布成功时有一个浮窗删除文章:注意鼠标的移动以及文章的统计数量页面:新增页面:删除页面:浮窗怎么不消失:点击发布后点击暂停就好这样就可以定位了上代码:再basic目录下新建一个文件test_category.py文件##增加文章和删除文章,重点是iframe的切入和切出以及弹窗的定位from selenium.webdriver import ActionChainsfrom selenium.webdriver.c...

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

页面:
新增页面:
selenium完成添加删除案例:iframe的切入和切出以及鼠标移动操作运用
删除页面:
selenium完成添加删除案例:iframe的切入和切出以及鼠标移动操作运用

浮窗怎么不消失:
点击发布后点击暂停就好这样就可以定位了
selenium完成添加删除案例: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