一、discuz实战
1、备注:验证码在公司中解决方案,万能验证码或屏蔽
链接参考:https://i.cnblogs.com/posts/edit;postId=13693695
解决方法一:

一、封装:登录
'''
讲解:
1、将论坛的登录还有点击模块管理 通过类来进行封装(给实参)
2、将论坛的登录还有点击模块管理 用例封装(给形参)且通过类的传递完成调用
加一个断言
'''
from selenium import webdriver
from time import sleep
class Discuz: #定义一个类
def __init__(self):
self.drvier=webdriver.Chrome()#创建浏览器对象
self.drvier.get('http://192.168.153.130/bbs/forum.php')
self.drvier.maximize_window()
self.drvier.implicitly_wait(10)
def login(self,name,pwd): #登录模块
self.drvier.find_element_by_id('ls_username').send_keys(name)
self.drvier.find_element_by_id('ls_password').send_keys(pwd)
sleep(2)
self.drvier.find_element_by_css_selector('.pn').click()
def mk_login(self): #模块管理
self.login('admin','123456')#通过self来引用登录模块
self.drvier.find_element_by_link_text('模块管理').click()
sleep(2)
title=self.drvier.title#获取模块管理界面的title
# print(title)
if title=='门户 - Discuz! Board - Powered by Discuz!':
print('模块管理中心OK') #模块管理中心OK
else:
print('NO')
sleep(4)
self.drvier.close()
if __name__ == '__main__':
D=Discuz()
# D.login() #调用登录模块
D.mk_login() #调用登录模
二、注册、登录
from selenium import webdriver
from time import sleep
class discuz(object):
def __init__(self):
self.driver = webdriver.Chrome()
self.driver.get('http://192.168.153.130//bbs/forum.php')
sleep(2)
self.driver.maximize_window()
def zhuce(self):
self.driver.find_element_by_link_text('立即注册').click()
sleep(2)
self.driver.find_element_by_id('WxQGOM').send_keys('hzdcs')
sleep(2)
self.driver.find_element_by_id('qMmWJc').send_keys('123456789')
sleep(2)
self.driver.find_element_by_id('ax0xA0').send_keys('123456789')
sleep(2)
self.driver.find_element_by_id('vQeIRe').send_keys('812462278@qq.com')
sleep(2)
self.driver.find_element_by_id('registerformsubmit').click()
def login(self):
self.driver.find_element_by_id('ls_username').send_keys('admin')
sleep(2)
self.driver.find_element_by_css_selector('input[name="password"]').send_keys('123456')
sleep(2)
self.driver.find_element_by_css_selector('.fastlg_l button[type="submit"]').click()
sleep(2)
# self.browser.find_element_by_xpath('//*[@id="um"]/p[1]/a[7]').click() #退出
# sleep(2)
try:
yy = self.driver.find_element_by_css_selector('[title="我的帖子"]').get_attribute('title')
print (yy)
assert yy == '我的帖子'
except:
print("登录失败")
else:
print ("登录成功")
if __name__ == '__main__':
p1 = discuz()
p1.zhuce()
p1.login()
拓展知识:
结论:
(1)先执行try block, 直到发现了错误,不再执行异常之后的代码。
(2)执行except block.
(3)向下继续。
三、在论坛成功上发帖
3.1发帖一:我的----》发帖----》
3.2

3.3默认模块发帖方式

备注:class属性中间有空格,如果直接复制过来定位是会报错的
InvalidSelectorException: Message:
原因:
1.class属性中间的空格并不是空字符串,那是间隔符号,
表示的是一个元素有多个class的属性名称
(class属性是比较特殊的一个,除了这个有多个属性外,其它的像name,id是没多个属性的)
2、class属性有空格是多个属性了,定位的时候取其中的一个就行(并且要唯一)
F12
#成功发帖
from time import sleep
from selenium import webdriver
driver = webdriver.Chrome()
url='http://192.168.153.130/bbs/forum.php'
driver.get(url)
driver.maximize_window()
driver.find_element_by_id('ls_username').send_keys('admin')
sleep(3)
driver.find_element_by_id('ls_password').send_keys('123456')
sleep(3)
driver.find_element_by_css_selector(".pn").click()
sleep(3)
driver.find_element_by_link_text("默认版块").click()
driver.find_element_by_xpath('//*[@id="newspecial"]/img').click()
sleep(3)
driver.find_element_by_id('subject').send_keys('论坛自动化测试快速发贴')
sleep(3)
s=driver.find_element_by_xpath('//*[@id="e_iframe"]')
driver.switch_to_frame(s)
driver.find_element_by_xpath('/html/body').send_keys('测试成功')
driver.switch_to_default_content()
driver.find_element_by_xpath('//*[@id="postsubmit"]/span').click()
四、论坛帖搜索
#帖子搜索
from time import sleep
from selenium import webdriver
driver = webdriver.Chrome()
url='http://192.168.153.130/bbs/forum.php'
driver.get(url)
driver.maximize_window()
driver.find_element_by_id('ls_username').send_keys('admin')
sleep(3)
driver.find_element_by_id('ls_password').send_keys('123456')
sleep(3)
driver.find_element_by_css_selector(".pn").click()
sleep(3)
driver.find_element_by_xpath('//*[@id="scbar_txt"]').send_keys('论坛自动化测试快速发贴')
driver.find_element_by_xpath('//*[@id="scbar_btn"]').click()
作业:1 .自己写五调条论坛的用例
2、结合自己项目写自动化用例,并把出现的问题总结及解决的方法
问题总结:
问题1.用户名id变化

问题2:
2、查看共同好友提示框,取消

问题3:
3、回帖中的表情添加

问题4:
图标点击发帖定位
问 
问题5:
性别的切换

问题6:猿辅导
首次登陆登陆无法,定位

浙公网安备 33010602011771号