selenium使用driver.refresh() 刷新网页后找到元素列表为空?

1、打开指定的网页地址我们使用selenium进行自动化测试时,打开浏览器之后,第一步就是让浏览器访问我们指定的地址,可使用get方法实现/') # 本行用于访问指定的地址

2、获取当前页面url

我们在测试过程中,有时需要获取当前页面的url以判断是否跳转到指定页面,获取页面url的方法如下:

越来越卡,所以养成测试完成后关闭浏览器是个良好习惯
 
 

 
 

selenium定位不到元素时,网上大部分查到都是iFrame的切换问题,然后是多窗口.句柄的处理问题, 在初学是遇到定位不到元素,一直在找上面的问题,发现都不是上面的问题, 后来才发现是页面刷新的问题,页面刷新后,元素就失效了,需要重新定位元素,哪怕看到元素刷新前后并没有变化,可是它确实失效了 解决办法: 检测获取不到元素抛出的异常StaleElementReferenceException,如果获取到该异常,则重新再定位一次元素即可 重新定位后,解决了一直定位不到元素的问题

  selenium主要用于web应用程序的自动化测试,还支持所有基于web的管理任务自动化。

  selenium经历了2个版本,selenium1.0和selenium2.0;selenium不是一个单独的工具,而是由一些插件、类库构成,每个组成部分都有其特点和应用场景。

  Webdirver:通过原生浏览器支持或扩展来直接控制浏览器,针对各个浏览器开发,与浏览器紧密集成,支持创建更高级的测试,其还可以利用操作系统级的调用,模拟用户输入;

  selenium IDE:嵌入到Firefox浏览器中的一个插件,实现简单的浏览器操作录制与回放功能,主要用于快速创建BUG及重现脚本,可转化为多种语言;

  selenium Gird:测试辅助工具,利用现有的计算机基础设施,实现多台计算上和异构环境中运行测试用例;

  selenium RC:selenium的核心组件,支持多种不同语言编写自动化测试脚本,通过其服务器作为代理服务器去访问应用,达到测试的目的;

  Selenium Core(一个JavaScript函数集合):被嵌入到浏览器中,通过它实现用程序对浏览器进行操作;

  登录Python官网,找到download,选择与自身平台(Windows/Linux)相符的版本下载(建议3.5+),然后安装即可;

  注意:安装时选择安装界面的“Add Python 3.x to PATH”进行勾选,避免再次配置环境变量;

  安装完成后通过Windows命令提示符CMD输入“python”,查看是否安装成功,如下图所示:

  如上图所示,则证明安装成功;

  pip是一个安装和管理python包的工具,通过pip来安装python包将变得很简单,省去了繁琐的过程,pip的安装依赖于setuptools,安装pip之前需要先安装setuptools;

  注意: 最新版的python安装包中已经集成了pip,可以在安装目录下的script路径下查看是否有pip.exe或pip3.exe文件,如果有,则cmd命令行中输入pip进行验证;

  如上图所示,则证明已经安装pip;

  完成上面2个步骤之后,可以通过cmd命令直接安装selenium包,如下图所示:

  注意:安装时如果只输入包名,则默认安装当前库中的最新版本,如果想安装自己需要的版本,则需要在包名后面加上版本号,比如:

  4、下载浏览器驱动

  前面说过,selenium支持多种浏览器,所以只需要下载对应的浏览器驱动,将解压得到的exe文件放到python的安装目录下即可;

  各个浏览器驱动下载地址:

  打开一款python编译器,输入下面的代码,运行,查看是否成功调用浏览器运行,如果运行成功,则说明已成功搭建好自动化开发环境;

  设计模式:按照Server-Client的经典设计模式设计;

  Server端:即Remote Server(远程服务器),可以是任意的浏览器,当脚本启动浏览器时,该浏览器就是Remote Server,它的职责是等待Client发送请求并做出响应;

  Client端:简单来说就是我们的测试代码,测试代码中的一些行为是以HTTP请求的方式发送给被测试浏览器——Remote Server,Remote Server接受请求,执行相应操作,

  并在Response中返回执行状态、返回值等信息;

  ①WebDriver启动目标浏览器,并绑定至指定端口,启动的浏览器实例将作为WebDriver的Remote Server;

  python提供了logging模块给运行中的应用,提供了一个标准的信息输出接口。它提供了basicConfig方法用于基本信息的定义,开启debug模块,

  就可以捕捉到Client端向Server端发送的请求,例子如下:

  WebDriver是基于selenium设计的操作浏览器的一套API,针对多种编程语言都实现了这套API,站在python角度来说,WebDriver是python的一个用于实现Web自动化的第三方库。

  WebDriver定位方法提供了八种元素定位方法,所对应的方法、特性分别是:

  2、XPath和CSS的类似功能对比

  3、用By定位元素

  针对前面介绍的8种定位方法,WebDriver还提供另一种方法,即:统一调用find_element()方法,通过By来声明定位方法,并且传入对应定位方法的定位参数,例子如下:

  find.element()方法只用于定位元素,它需要两个参数,第一个参数是定位的类型,由By提供,第二个参数是定位的具体方式,在使用By之前需要将By类导入;

  上面提到的8种定位方法,都是针对单个元素定位的,webdriver还提供了与之对应的8种用于定位一组元素的方法。其一般应用于以下场景:

  ①批量操作元素,例如勾选页面上所有的复选框;

  ②先获取一组元素,再从这组元素中过滤出需要操作的元素;

  定位一组元素的方法与定位单个元素的用法相似,唯一的区别是在element后面多一个s表示复数,具体如下:

  获取一组元素中某个元素的几个方法:

  len():用来计算元素的个数,通过print()打印出计算的结果;

  pos()或pop(-1):默认获取一组元素的最后一个元素,并返回该元素的值;

  pop(0):默认获取一组元素的第一个元素,并返回该元素的值;

  pop(1):默认获取一组元素的第二个元素,并返回该元素的值;

  通常需要与页面交互的方法都由WebElement接口提供,包括上面提到的8种定位方法,下面介绍常用的几种方法:

  submit():用于提交表单,例如搜索框输入关键字之后的“回车”操作,例如:

  注意:有时候submit()方法和click()方法可以互用,但submit()的应用范围不及click()广泛;

  clear():清除文本;

  click():单击元素;

  size:返回元素的尺寸;

  text:获取元素的文本;

  is_displayed():设置该元素是否用户可见;

  webdriver主要提供操作页面上各种元素的方法,但它也提供操作浏览器的一些方法,例如控制浏览器大小、前进和后退等。

  1、控制浏览器窗口大小

  3、控制浏览器前进、后退

  现在的浏览器在浏览网页时都提供了前进和后退功能,webdriver也提供了对应的forward()和back()方法,来模拟前进和后退按钮:

  为了看清脚本执行过程,每一步的操作都通过print()打印当前的URL地址,执行结果如下:

  4、模拟浏览器前刷新

  一般我们刷新页面都是通过F5或者页面上的刷新按钮,webdriver也提供了刷新方法refresh(),用来模拟页面刷新:

  在webelement接口提供的方法中,可以通过click()来模拟鼠标单击操作,但实际上鼠标交互方式很多,例如:右击、悬停、鼠标拖动等功能;

  鼠标悬停弹出下拉菜单也是一个十分常见的功能设计,move_to_element()方法可以模拟鼠标悬停动作,其用法与context_click()相同;

  double_click()方法用于模拟鼠标双击操作;

  drag_and_drop(source,target)在源元素上按住鼠标左键,然后移动到目标元素上释放;

  source:鼠标拖动的源元素

  target:鼠标释放的目标元素

如需转载,请注明文章出处和来源网址:

我要回帖

更多关于 静默管理最新通知 的文章

 

随机推荐