selenium完成添加删除案例:iframe的切入和切出以及鼠标移动操作运用
程序员文章站
2022-03-10 22:24:27
需求任务:新建文章:写内容时注意iframe的切入和切出还有发布成功时有一个浮窗删除文章:注意鼠标的移动以及文章的统计数量页面:新增页面:删除页面:浮窗怎么不消失:点击发布后点击暂停就好这样就可以定位了上代码:再basic目录下新建一个文件test_category.py文件##增加文章和删除文章,重点是iframe的切入和切出以及弹窗的定位from selenium.webdriver import ActionChainsfrom selenium.webdriver.c...
需求任务:新建文章:写内容时注意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
上一篇: 正则表达式验证
下一篇: Python入门——环境搭建