python断言assert实例,selenium断言使用
Selenium常用的断言包括页面属性断言:断言标题、url或页面源代码是否包含特定字符;断言指定元素具有图片和链接;断言图片显示正常,链接可以正常打开;断言页面属性断言是最常用的断言方式,可以用来断言页面是否正常打开,是否在指定的窗口和页面上。例子如下。
从selenium导入webdriverdr=webdriver。chrome()dr . get( https://www . Baidu . com )dr . find _ element(链接文字,新闻)。click()dr . Switch _ to . window(dr . window _ handles[-1])#切换到最后一个窗口断言百度新闻在dr.title #断言标题包含断言 3358news.baidu.com/==dr . current _ url #断言为指定的URL断言未找到不在dr.page _ source #断言页面的源代码不包含未找到(通常Nginx返回404页显示未找到)。Dr. Quit()页面元素的断言有时候我们需要判断页面上是否存在指定的元素才能继续操作,或者通过是否存在来断言它是否在指定的页面上。
断言一个元素是否存在可以使用try … except捕捉并抑制该元素无法定位的异常,或者使用find_elements判断返回的元素列表是否为空来判断该元素是否可以定位。
对于需要等待一定时间才能出现的元素,我们可以使用私有智能等待或主动等待来轮询和检查元素,直到超时。例子如下。
从selenium导入web driver from selenium . common . exceptions导入NoSuchElementExceptionfrom selenium . web driver . common . action _ chains导入操作ch ains from selenium . web driver . support . wait导入WebDriverWait,TimeoutExceptiondr=webdriver。chrome()dr . get( https://www . Baidu . com )dr . maximize _ window()try:settings=dr . find _ element( id ,S-user setting-top )exception:print( setting 未定位)# raiseasertion error( setting link不存在)#测试时需要抛出标准断言异常。对于偶发元素,不需要抛出exception else:print( setting exists )action chains(dr)。move _ to _ element(设置)。perform () #鼠标移动到setting #或使用find_elements列表的长度判断elms=dr.find_elements(id ,S-用户设置-top )iflen(elms)0:settings=elms[0]print( setting exists )action chains(dr)。move _ to _ element(设置)。perform()else:print( setting not located )Raise assertion error( setting link不存在)#对于需要等待的元素,使用主动等待轮询try: webdriverwait (Dr,10,0.5)。直到(lambda Dr:Dr . find _ element( link text ,高级搜索))。click () excepttimeout异常:print(高级搜索未定位)# raisesassertion错误(高级搜索不存在)dr.quit()图片和链接断言图片是否显示,链接能否正常打开。我们可以通过dr.get(图片或链接地址)检查它是否返回40。
从selenium导入webdriverdr=webdriver。chrome()dr . get( https://www . Baidu . com )Baidu _ logo _ URL=dr . find _ element( id ,S _ LG _ IMG )。Get _ attribute (src) print(百度Logo图片链接,Baidu _ Logo _ URL)dr . get(Baidu _ Logo _ URL)#尝试打开图片Assert Not Found 不在dr.page _ source #假设没有包含Not Found这个词的错误页面dr . back()Hao123 _ link _ URL=dr . find _ element( link text , Hao123 )。get _ attribute( href )print( Hao123 link ,Hao123 _ link _ URL)dr . get(Hao123 _ link _ URL)#尝试打开页面assert not found not in dr . page _ source dr . back()dr . quit()图片和链接可以通过使用接口请求,或者使用专门的404检查工具来更快地检查。
其他颜色断言:Selenium支持样式排列的断言:比如标题是否断行、按钮是否重叠、放错位置等。可以通过保存页面(或部分)的截图,以及python-opencv图片比对等一系列算法来实现。断言一张图片是否指定一张图片:通过图片的对比,涉及到一些图像算法。如果文章对你有帮助,请伸手发财,给个赞。谢谢大家的支持,你们的赞是我不断更新的动力。
最后:福利技术行业,一定要提升技术功底,丰富自动化项目实战经验,这对于你未来几年职业规划,以及测试技术掌握的深度非常有帮助。
九月十月面试季,跳槽季,跳槽季,整理面试问题是我多年的习惯!以下是我这几年的收集整理,整体围绕【软件测试】展开。主要内容包括:python自动化测试独家视频、Python自动化细节、全套面试问题等知识内容。
对于软件测试的朋友来说,应该是面试准备最全面最完整的仓库了。为了更好的组织每个模块,我还参考了网上很多高质量的博文和项目,尽量不遗漏每一个知识点。许多朋友依靠这些内容来查看并获得BATJ等大制造商的报价。这个仓库也帮助了很多软件测试学习者,希望也能帮助到你!
愿你我相遇,皆有所获! 欢迎关注微信公众号:【伤心的辣条】 免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。