在自动化测试中,很多时候都会有等待页面某个元素出现后能进行下一步操作,或者列表中显示加载,直到加载完成后才进行下一步操作,但时间都不确定,如下图所示 幸运的是,在selenium 2后有一个模块expected_conditions,里面有很多函数可以完成这个工作,相关博客可见 http://www.cnblogs.com/nbkhic/p/4885041.html 但在selenium 1中或自己仅仅想写个简单用法该怎么处理那?解决如下: from selenium.common.except…
1.显示等待: from selenium import webdriver from time import sleep from selenium.webdriver.support.ui import WebDriverWait #显示等待针对元素操作 #EC预期条件类(里面主要有一些判断元素是否出现,弹出框是否出现,以及是否出现新窗口等.) #EC用的比较多的就是和显示等待一起使用,通过显示等待的方法来循环判断是否元素是否出现 from selenium.webdriver.suppor…
众所周知,Python通常结合selenium模块来完成一些web的自动化测试以及RPA(Robotic Process Automation)工作.事实上,Selenium还可以支持插入js语句.执行js语句.返回js语句的执行结果到python程序中.这对于那些已经习惯了Javascript语法的程序员们,简直是一大神器. 举个简单的例子,我们用selenium原生的方法对页面的一个input元素执行输入时,通常需要用到selenium中的send_keys以及clear方法, 代码类似于:…
一.selenium中iframe切换方法: 方法一:switch_to.frame frame函数中提供了三种定位方法:by index, name, or webelement. driver.switch_to.frame('frame_name') driver.switch_to.frame(1) driver.switch_to.frame(driver.find_elements_by_tag_name("iframe")[0]) 以腾讯课堂为例: from seleni…
前言 前面已经把环境搭建好了,现在开始使用 Selenium 中的 Webdriver 框架编写自动化代码脚本,我们常见的在浏览器中的操作都会有相对应的类方法,这些方法需要定位才能操作元素,不同网页的元素也不同,可以根据自己情况选择使用类方法.下面开始学习元素定位: New一个后缀为.py的Python文件写一段代码,先感受一下代码吧!写完以后Ctrl+Shift+F10运行代码. # -*- coding:utf-8 -*- from selenium import webdriver # 从…
接着python里面的xlrd模块详解(一)中我们我们来举一个实例: 我们来举一个从Excel中读取账号和密码的例子并调用: ♦1.制作Excel我们要对以上输入的用户名和密码进行参数化,使得这些数据读取自Excel文件.我们将Excel文件命名为data.xlsx,其中有两列数据,第一列为username,第二列为password. ♦2.读取Excel代码如下 #-*- coding:utf-8 -*- import xlrd,time,sys,unittest #导入xlrd等相关模块 c…
接着python里面的xlrd模块详解(一)中我们我们来举一个实例: 我们来举一个从Excel中读取账号和密码的例子并调用: ♦1.制作Excel我们要对以上输入的用户名和密码进行参数化,使得这些数据读取自Excel文件.我们将Excel文件命名为data.xlsx,其中有两列数据,第一列为username,第二列为password. ♦2.读取Excel代码如下 #-*- coding:utf-8 -*- import xlrd,time,sys,unittest #导入xlrd等相关模块 c…
​ 我们在做WEB自动化时,最根本的就是操作页面上的各种元素,而操作的基础便是元素的定位,只有准确地定位到唯一元素才能进行后续的自动化控制,下面将对各种元素定位方式进行总结归纳. ​ 说明:以下操作统一使用百度首页<www.baidu.com>进行示例,鼠标右键然后点击检查(或按f12)可以查看具体的前端代码. 单一属性定位 ​ 6种单一属性定位 : id,name,class name,tag name,link,partial_link ​ 2种多样式定位:css.xpath(强烈推荐)…
应用实例可以参考博客中的12306自动抢票应用 https://www.cnblogs.com/mumengyun/p/10001109.html 动态网页数据抓取 什么是AJAX: AJAX(Asynchronouse JavaScript And XML)异步JavaScript和XML.过在后台与服务器进行少量数据交换,Ajax 可以使网页实现异步更新. 这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新.传统的网页(不使用Ajax)如果需要更新内容,必须重载整个网页页面.因…
如果想从头学起selenium,可以去看看这个系列的文章哦! https://www.cnblogs.com/miki-peng/category/1942527.html 前言 ​ 本文主要介绍selenium控制浏览器一些常用属性和方法,包括控制窗口大小.页面前进后退.页面刷新.打开或关闭标签页.滚动条等等 设置浏览器大小 import time from selenium import webdriver # 浏览器实例化 driver = webdriver.Chrome() # 把浏览…