本篇转自博客:上海-悠悠原文地址:http://www.cnblogs.com/yoyoketang/tag/unittest/ 前言在执行用例过程中由于是无人值守的,用例运行报错的时候,我们希望能对当前屏幕截图,留下证据。在写用例的时候,最后一步是断言,可以把截图的动作放在断言这里,那么如何在断言失败后截图呢? 一、截图方法1.get_screenshot_as_file(self, filename)--这个方法是获取当前window的截图,出现IOError时候返回False,截图成功返回True。filen...
让我们先来预览一下代码运行效果吧: 首先分析163邮箱登陆页面的网页结构(按F12或单击鼠标右键选择审查元素) 1、定位到登陆框(注意登录框是一个iframe,如果不定位到iframe的话是无法找到之后的邮箱地址框和密码输入框的) 2、定位到邮箱地址框(name=‘email‘) 3、定位到密码输入框(name=‘password‘) 4、定位到登陆按钮(id=‘dologin‘) 5、分析完毕,现在就可以写代码实现163邮箱的自动登陆啦(附有代码的详细解析!)...
1.对话框,下拉框(1)对话框的有两种,一种是iframe格式的,需要switch_to_iframe()进行定位,现在大部分的对话框是div格式的,这种格式的可以通过层级定位来定位元素,先定位对话框的div,然后再对对话框的元素进行定位。(2)另外的弹出消息提示框有三种类型:alert,comfirm,prompt,三种类型的区别为;alert消息提示框仅提供“确定”按钮,用于警告等提示,comfirm提示框提供“是”和“否”的选择,prompt则是提示输入对话框,包...
一、yaml源文件编写 二、对yaml文件内容的读取#coding=gbkimport osimport yamlcurrent_path=os.path.dirname(__file__)yaml_path=os.path.join(current_path,‘../element_info_datas/element_login_infos.yaml‘)class ElementdataYamlUtils(): def get_yaml_element_info(self,yaml_path): file = open(yaml_path, ‘r‘, encoding="gbk") file_data = file.read() file.close() # 指定Loade...
from selenium import webdriverdriver = webdriver.Firefox()driver.get("https://www.baidu.com")# 2.打开Ie或Chrome浏览器-->先将驱动文件放到python根目录from selenium import webdriverdriver = webdriver.Ie()# driver = webdriver.Chrome() #打开谷歌浏览器driver.get("https://www.baidu.com") 注意:1.Firefox浏览器47.0版本会报错,安装46.0以下版本(勿升级)2.取消Ie浏览器保护模式# 常规操作from selenium import we...
前言实现需求:当测试用例全部通过的时候,不发邮件,当用例出现Error或Failure的时候发送邮件解决思路:生成html测试报告后,用bs4解析html页面,写个函数判断页面上是都有不通过的记录html报告1.查看html报告,主要看Status这一行是否会出现Failure 或 Error 的记录bs4解析html1.bs4模块在我的博客上上海-悠悠之前有过介绍,就不重复写了,先定位html页面元素,先通过它的class属性:attribute定位到这三行记录2.取出最后一行,然...
selenium用于web应用程序的自动化测试工具,支持多种浏览器、多种脚本语言编写及录制的工具。测试过程可以使用python+selenium进行做UI界面自动化,UI界面自动化一个基础核心是元素定位。selenium提供了单元素定位和多元素定位,2种方式都有8种元素定位方式:单元素定位方法:find_element_by_id:通过元素id属性定位 (find_elements_by_id:多元素定位,返回是列表定位位置,默认定位到第一个,索引是从0开始,其他几种多元素定...
【环境】Python3.6+selenium3.0.2+IE11+Win7【定位方法】1、通过ID定位方法:find_element_by_id(‘xx‘)2、通过name定位方法:find_element_by_name(‘xx‘)3、通过class name定位方法:find_element_by_class_name(‘xx‘)4、通过tag name定位方法:find_element_by_tag_name(‘xx‘)说明:tag name在html中是标签的名字,在一个页面上会有很多个标签的名字相同。这种定位方法适用于需要定位一组元素时。【示例】说明:tag name不...
8种定位方法1、 id 定位 find_element_by_id()2、 name定位 find_element_by_name()3、 class name定位 find_element_by_class_name()4、tag name定位 find_element_by_tag_name() /一般都找不到元素,作为了解5、link text定位 find_element_by_link_text()/超链接6、partial link text 定位 find_element_by_partial_link_text()/部分超链接7、 xpath定位 find_element_by_xpath()/以上的方法不好找,就用以下这两个8、css...
练习场景:百度登录时,勾选下次自动登录按钮; 一、简单版具体代码如下:# coding=utf-8import time from selenium import webdriverdriver = webdriver.Chrome() driver.maximize_window() driver.implicitly_wait(8) driver.get(‘https://www.baidu.com/‘) driver.implicitly_wait(8)driver.find_element_by_xpath("//*[@id=‘u1‘]/a[8]").click() time.sleep(1) driver.find_element_by_xpath("//*[@title=‘用户名登录‘]...
前言 有小伙伴在用脚本启动浏览器时候发现原来下载的插件不见了,无法用firebug在打开的页面上继续定位页面元素,调试起来不方便 。加载浏览器配置,需要用FirefoxProfile(profile_directory)这个类来加载,profile_directory既为浏览器配置文件的路径地址 一、遇到问题1.在使用脚本打开浏览器时候,发现右上角原来下载的插件firebug不见了,到底去哪了呢?2.用脚本去打开浏览器时候,其实是重新打开了一个进程,跟手动打开浏览...
selenium基础实战之定位网页元素技巧selenium定位网页元素find_element_by_id,find_element_by_name,find_element_by_class_name1)、开启浏览器browser = webdriver.Firefox();2)、打开网页browser.get("http://baidu.com")使用python判断是否正确browser.title 或者 browser.current_url3)、定位元素的8种方法,(!!!!一定要唯一)id: find_element_by_id() 采用id属性进行定位name: find_element_by_name() 定位方式和...
因为我的博客是根据我每个阶段自己做的事情而写的,所以前言可能有点跑题,但它更有利于让我回忆这个阶段自己的所作所为。这篇文章主要介绍Selenium爬虫获取当前窗口句柄、切换窗口句柄以及调用Chrome浏览器几个知识点,其中获取当前句柄的方法是非常重要的一个知识点,只有真正遇到的时候才能体会到它的强大。 最近课程比较多,写博客的内容也比较杂,包括网站搭建、HTML设计、计算机图形学、Python数据挖掘、Flash动画等。...
今天编写代码的过程中,遇到提示浏览器兼容性问题,找到的解决方法如下;不多说,先上代码和错误截图:从上图的错误信息可以得知,在将窗口最大化时,出现:unable to connect to renderer; 原因是浏览器的版本和浏览器驱动的版本不兼容;故需要找新版本的浏览器驱动chromedriver,下载时间上传最新版本下载地址: https://npm.taobao.org/mirrors/chromedriver/ 下载完成后,替换到python的安装目录 下:如下图:然后,再次点击程...
selenium2 python范例下面脚本的功能是:打开谷歌浏览器--》跳转到某个网址--》输入用户名和密码登录--》读取页面内的数据并求和。 1# coding=utf-8 #编码声明 2import time3from selenium import webdriver4 5# 跳转到首页 6 driver = webdriver.Chrome() # Optional argument, if not specified will search path. 7 driver.implicitly_wait(15)8 driver.get(‘http://xxx.xxx.xxx‘) # 网址9# driver.maximize_window()10 tim...