一、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:猿辅导
首次登陆登陆无法,定位