随笔分类 - 2-selenium
摘要:经常在操作某些输入框时,需要清除之前输入的内容,但是clear()方法有时会不生效,解决方案如下: 方案一:使用双击 1. 适用于英文、数字等 2. 中文不太适用,因为中文双击的话不能全选中 driver.get('https://www.baidu.com/') ele_input = driv
阅读全文
摘要:修改前的代码,运行时会打开多个浏览器页面(因为运行一次webdriver.Chrome(),就会打开一个页面) 修改后的代码,将webdriver.Chrome()放在配置文件的全局变量driver中,使用时import即可 1. 修改前代码: test_base.py test_baidu.py
阅读全文
摘要:循序渐进的方式介绍(也可以直接到步骤4中看示例模板) 1. 简单示例: from selenium import webdriver import time driver = webdriver.Chrome() def get_screen(): now_time = time.strftime(
阅读全文
摘要:按钮点击报错:selenium.common.exceptions.ElementClickInterceptedException: Message: element click intercepted: Element <button type="button" class="ant-btn a
阅读全文
摘要:报错:selenium.common.exceptions.ElementNotInteractableException: Message: element not interactable 是因为页面元素不可见,如页面缩小了,将页面最大化即可。 建议:可以在每次测试前,将页面最大化,如下: dr
阅读全文
摘要:Page Object是UI自动化测试项目的最佳设计模式之一。 主要特点:体现在对界面交互细节的封装上,使测试用例更专注于业务的操作,从而提高测试用例的可维护性 设计思想:把元素的定位与元素的操作分层 环境配置:pip安装(pip install -i https://pypi.tuna.tsing
阅读全文
摘要:常用操作cookie的方法如下: get_cookie(name='aaa') 获取key(name)为aaa的cookie get_cookies() 获取所有cookie add_cookie(dict) 添加cookie delete_cookie(name='aaa') 删除cookie d
阅读全文
摘要:针对<select>标签,可使用如下方法: select_by_value() 通过value值定位下拉选项 select_by_index() 通过下拉选项的索引定位,从0开始 select_by_visible_text() 通过text值定位 百度搜索下拉框,如下: 分别选择每页显示20条,1
阅读全文
摘要:做两个简单的页面测试,一个测试百度首页,一个测试有道首页 规划测试目录如下: ps:在dos下,进入到web_test目录,执行以下命令:python runtest.py >> report/log.txt 2>&1,会在report目录下生成日志文件 代码如下: test_baidu.py 1
阅读全文
摘要:向副文本框输入内容(textarea) (老版本的副文本不能用send_keys发送文本) 副文本框如下: 1 <html> 2 <body> 3 <textarea id="gh" style="width:98 %" cols="50" rows="5" class="txtarea"></te
阅读全文
摘要:通过图片可以直观的看出出错的原因,使用如下方法: get_screenshot_as_file() 1 from selenium import webdriver 2 import time 3 4 driver = webdriver.Chrome() 5 driver.get('http://
阅读全文
摘要:执行以下两步: window.scrollTo(x, y)方法,设置浏览器窗口滚动条的水平和垂直位置(第一个参数表示水平左间距,第二个参数表示垂直上边距) execute_script()方法,执行js代码 1 from selenium import webdriver 2 import time
阅读全文
摘要:1.文件上传 send_keys() 将本地文件的路径作为一个值放在input标签中,通过form表单将这个值提交给服务器 点击百度首页搜索框右侧的照相机按钮,从本地上传图片元素,上传一张图片 <input type="file" class="upload-pic" value="上传图片"> 该
阅读全文
摘要:类似下图所示的警告框,无法通过前端工具定位,需要跳转到弹框,然后再对其操作 3种弹框: 警告类弹框,alert:一个按钮 确认类弹框,confirm:一个确认,一个取消 消息类弹框,prompt:一个输入框, 一个确认,一个取消 跳转到弹框: switch_to.alert 常用的弹框处理方法: t
阅读全文
摘要:页面操作中,点击某个链接会打开新的窗口,定位新窗口中的元素,需要跳转到新窗口操作(即使已经打开新的窗口,你的句柄和title还是前面窗口的),可以使用以下方法: current_window_handle window_handles switch_to.window(handle) 例子: 1.
阅读全文
摘要:遇到iframe表单嵌套页面时,webdriver无法直接定位其中的元素,需要转换到内嵌的页面中后,再进行元素定位 例如:做一个页面,将百度首页嵌套进去 1 <html> 2 <hody> 3 <iframe id="iff" src="http://www.baidu.com" width="10
阅读全文
摘要:例1: 首先,自己编写一个html,包含3个复选框,如下图: HTML代码如下: 1 <html> 2 <head> 3 <meta http-equiv="content-type" content="text/html;charset=utf-8" /> 4 <title>checkbox</t
阅读全文
摘要:页面加载元素,有时会有延时,造成自动化测试的不稳定。可以通过设置元素的等待延时来解决,一般有3种方法: 显示等待 隐式等待 sleep() 下面分别介绍: 1. 显示等待 稍复杂,不常用,so~~ 2. 隐式等待 implicitly_wait() 通过一定的时长,等待页面上的元素加载完成。driv
阅读全文
摘要:定位元素之后,要对元素进行操作。如按钮,进行点击操作;编辑框,进行输入操作等。以下是几种常见的元素操作: clear() 清除文本 send_keys() 模拟键盘输入 click() 单击 submit() 提交表单 text 返回元素文本 size() 返回元素尺寸 get_attibute()
阅读全文