2.1 操作元素基本方法

news/2024/7/3 10:01:46

2.1 操作元素基本方法

前言
从这篇开始,正式学习selenium的webdriver框架。我们平常说的 selenium自动化,其实它并不是类似于QTP之类的有GUI界面的可视化工具,我们要学的是webdriver框架的API。
本篇主要讲如何用Python调用webdriver框架的API,对浏览器做一些常规的操作,如打开、前进、后退、刷新、设置窗口大小、截屏、退出等操作。

2.1.1 打开网页

1.从selenium里面导入webdriver模块
2.打开Firefox浏览器(Ie和Chrome对应下面的)
3.打开百度网址

2.1.2 设置休眠

1.由于打开百度网址后,页面加载需要几秒钟,所以最好等到页面加载完成后再继续下一步操作
2.导入time模块,time模块是Python自带的,所以无需下载
3.设置等待时间,单位是秒(s),时间值可以是小数也可以是整数

2.1.3 页面刷新

1.有时候页面操作后,数据可能没及时同步,需要重新刷新
2.这里可以模拟刷新页面操作,相当于浏览器输入框后面的刷新按钮

2.1.4 页面切换

1.当在一个浏览器打开两个页面后,想返回上一页面,相当于浏览器左上角的左箭头按钮。

2.返回到上一页面后,也可以切换到下一页,相当于浏览器左上角的右箭头按钮。

2.1.5 设置窗口大小

1.可以设置浏览器窗口大小,如设置窗口大小为手机分辨率540*960
2.也可以最大化窗口

 2.1.6 截屏

1. 打开网站之后,也可以对屏幕截屏
2.截屏后设置指定的保存路径+文件名称+后缀

2.1.7 退出

1.退出有两种方式,一种是close;另外一种是quit。
2.close用于关闭当前窗口,当打开的窗口较多时,就可以用close关闭部分窗口。
3.quit用于结束进程,关闭所有的窗口。
4.最后结束测试,要用quit。quit可以回收c盘的临时文件。

掌握了浏览器的基本操作后,接下来就可以开始学习元素定位了,元素定位需要有一定的html基础。没有基础的可以按下浏览器的F12快捷键先看下html的布局,先了解一些就可以了。

2.1.8 加载浏览器配置

启动浏览器后,发现右上角安装的插件不见了,这是因为webdriver启动浏览器时候,是开的一个虚拟线程,跟手工点开是有区别的,selenium的一切操作都是模拟人工(不完全等于人工操作)。

加载Firefox配置

   有小伙伴在用脚本启动浏览器时候发现原来下载的插件不见了,无法用firebug在打开的页面上继续定位页面元素,调试起来不方便 。加载浏览器配置,需要用FirefoxProfile(profile_directory)这个类来加载,profile_directory既为浏览器配置文件的路径地址。

一、遇到问题
1.在使用脚本打开浏览器时候,发现右上角原来下载的插件firebug不见了,到底去哪了呢?
2.用脚本去打开浏览器时候,其实是重新打开了一个进程,跟手动打开浏览器不是一个进程。
所以没主动加载插件,不过selenium里面其实提供了对应的方法去打开,只是很少有人用到。

 

 

二、FirefoxProfile
1.要想了解selenium里面API的用法,最好先看下相关的帮助文档打开cmd窗口,
输入如下信息:

->python
->from selenium import webdriver
->help(webdriver.FirefoxProfile)

Help on class FirefoxProfile in module
selenium.webdriver.firefox.firefox_profile:
class FirefoxProfile(builtin.object)
|  Methods defined here:

|
|  init(self, profile_directory=None)
|      Initialises a new instance of a Firefox Profile
|    
|      :args:
|       - profile_directory: Directory of profile that you want to use.
|         This defaults to None and will create a new
|         directory when object is created.

2.翻译过来大概意思是说,这里需要profile_directory这个配置文件路径的参数
3.profile_directory=None,如果没有路径,默认为None,启动的是一个新的,有的话就加载指定的路径。

三、profile_directory
1.问题来了:Firefox的配置文件地址如何找到呢?
2.打开Firefox点右上角设置>?(帮助)>故障排除信息>显示文件夹

3.打开后把路径复制下来就可以了:
C:\Users\xxx\AppData\Roaming\Mozilla\Firefox\Profiles\1x41j9of.default

 

四、启动配置文件
1.由于文件路径存在字符:\ ,反斜杠在代码里是转义字符,这个有点代码基础的应该都知道。
不懂什么叫转义字符的,自己翻书补下基础吧!
2.遇到转义字符,为了不让转义,有两种处理方式:
第一种:\ (前面再加一个反斜杠)

第二种:r”\"(字符串前面加r,使用字符串原型)

 

五、参考代码:

复制代码
# coding=utf-8
from selenium import webdriver
# 配置文件地址 profile_directory = r'C:\Users\xxx\AppData\Roaming\Mozilla\Firefox\Profiles\1x41j9of.default' # 加载配置配置 profile = webdriver.FirefoxProfile(profile_directory) # 启动浏览器配置 driver = webdriver.Firefox(profile)
复制代码

 其实很简单,在调用浏览器的前面,多加2行代码而已,主要是要弄清楚原理。

转载于:https://www.cnblogs.com/lunvo/p/9182907.html


http://www.niftyadmin.cn/n/4557704.html

相关文章

在Turbo c可以复制吗

||| 可以啊 然后把光标移到你想要粘帖的地方 复制的话 然后按ctrlkk 在把光标移到你要结束的位置 然后按ctrlkb 上面有具体的操作方法:先把光标移到一要开始的位置 然后选择Block commands 按F1再F1 在tc中 当然可以了 ||| 可以 你说的应该是Turbo c2.0把 按ctrlkc …

Maven 在Install时出现MojoExecutionException。

[INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building 某个Maven模块名 模块版本 [INFO] ----------------…

C++ 谁能帮我仔细介绍下C C#这3个语言

c#是微软的.NET语言中的一种 在c语言的基础上有了面向对象的编程模式 c是最早的面向对象编程语言 是所有其他高级语言的语法基础 兼有两者的特点 ||| C/C/C#准确的说 c语言是一种介于高级语言和低级语言之间的语言 但是由于C/C的语法90%相似 .NET体系包括C#.NET、VB.NET、VC.NE…

多线程及多进程部分概念汇总

1.线程的基本概念、线程的基本状态及状态之间的关系? 1.1线程概念 >>是进程中的一个执行控制单元,执行顺序流。同类的多个线程共享一块内存空间和一组系统资源,线程本身有一个供程序执行时的堆栈。线程在切换时负荷小,因此&…

Spring MVC 出现 Did not find handler method for [uri] 可能的解决方法

在做SpringMVC 测试时发现在配置完全正确 0.相关JAR包完全导入&#xff0c;Tomcat启动完全成功 1.配置有扫描 <!-- 处理静态资源 --><mvc:default-servlet-handler/><!--Configures the annotation-driven Spring MVC Controller programming model.Note that…

在Windows系统和Linux服务器安装MongoDB和基本使用

Windows系统本地数据库连接文档存储&#xff08;MongoDB / CouchDB&#xff09;&#xff1a;文档存储一般以类似json的格式存储&#xff0c;存储的内容是文档型的。这样的存储方式&#xff0c;也就有有机会对某些字段建立索引&#xff08;index&#xff09;&#xff0c;实现关系…

java NIO关于*Buffer的 flip | reset | rewind | clear 的灵活使用备忘

首先对于Buffer的理解&#xff1a; 有两种状态&#xff1a; 读 || 写 四个重要的属性&#xff1a; capacity: 【Buffer实例最大容量&#xff0c;不可变】 limit: 【Buffer实例最大 {可写 | 可读 } 的值&#xff0c;在写模式下&#xff0c;默认与初始化 给定的 capacity…

要看什么书 全国计算机二级考试C语言类初了C语言还要考些什么

1 另一类是数据库程序设计(Visual )自选一类参加考试http://www.examda.com/ncre/Dynamic/dagang/20070308/145902533.html 二级定位为计算机程序员 一类是语言程序设计(C、C、Java、Visual Basic、Delphi) 学高等教育出版社的《公共基础知识》机试的环境是vc6.0 去年改的以前用…