web自动化测试-D3-学习笔记之二(Selenium-WebDriverApi接口详解)

浏览器操作

1

2

3

4

5

6

7

8

# 刷新

driver.refresh()

# 前进

driver.forward()

# 后退

driver.back()

获取标签元素

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

# 通过ID定位目标元素

driver.find_element_by_id(‘i1‘)

# 通过className定位目标元素

driver.find_element_by_class_name(‘c1‘)

# 通过name属性定位目标元素

driver.find_element_by_name(‘n1‘)

# 通过Xpath定位目标元素

driver.find_element_by_xpath(‘//*[@id="i1"]‘)

# 通过css Selector定位目标元素

driver.find_element_by_css_selector(‘#i1‘)

# 通过标签名称定位(注:在一个页面中,标签一定会重复,所以不用这个来进行定位)

driver.find_element_by_tag_name(‘input‘)

# 通过标签中的文本查找元素

driver.find_element_by_link_text(‘登录‘)

# 通过标签中文本的模糊匹配查找

driver.find_elements_by_partial_link_text(‘录‘)

获取标签元素常用的一共有8种定位方式,而Selenium实际提供了18种定位方式,还有8中是上面的复数形式,这里就不一一介绍了,实际运用中并不常用,还有2种实际上是这上面所说16种的底层封装。参数化的一种调用方式而已。

Cookie操作

1

2

3

4

5

6

7

8

9

10

11

12

13

14

# 根据cookieKey,获取cookie信息

cookie = driver.get_cookie(‘cookieKey‘)

# 获取所有cookie信息

cookies = driver.get_cookies()

# 添加cookie,严格按照格式添加,cookie的key为name,value为value

driver.add_cookie({‘name‘:‘tmp‘,‘value‘:‘123123123‘})

# 删除所有cookie信息

driver.delete_all_cookies()

# 根据cookieKey删除对应cookie

driver.delete_cookie(‘UiCode‘)

窗口操作

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

# 获取当前浏览器的大小

driver.get_window_size()

# 通过像素设置浏览器的大小

driver.set_window_size(‘width‘,‘height‘)

# 获取当前窗口针对于Windows的位置的坐标x,y

driver.get_window_position()

# 设置当前窗口针对Windows的位置,x,y

driver.set_window_position(20,20)

# 最大化当前窗口,不需要传参

driver.maximize_window()

# 返回当前操作的浏览器句柄

driver.current_window_handle

# 返回所有打开server的浏览器句柄

driver.window_handles

截取当前页面

1

2

3

4

5

# 获取当前页面的二进制图片数据,需要自己去写入文件

driver.get_screenshot_as_png()

# as_png的上层封装,只需要传入图片名称自动写成图片

driver.get_screenshot_as_file(‘fileName.png‘)

执行JavaScript语句

1

2

3

4

5

6

7

# 执行JavaScript语句

driver.execute_script(‘JavaScript Commond‘)

# 例:

# 通过js来操作滚动条

# 参数1:x  参数2: y

window.scrollTo(100,400);

关闭与退出

1

2

3

4

5

# 当开启多个时,关闭当前页面

driver.close()

# 退出并关闭所有页面驱动

driver.quit()

其他

1

2

3

4

5

6

7

8

9

10

11

# 返回页面源码

driver.page_source

# 返回tag标题

driver.title

# 返回当前Url

driver.current_url

# 获取浏览器名称 如:chrome

driver.name

ElementApi接口

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

# 根据标签属性名称,获取属性value

element.get_attribute(‘style‘)

# 向输入框输入字符串 如果input的type为file类型 可以输入文件绝对路径上传文件

element.send_keys()

# 清除文本内容

element.clear()

# 鼠标左键点击操作

element.click()

# 通过属性名称获取属性

element.get_property(‘id‘)

# 返回元素是否可见 True or False

element.is_displayed()

# 返回元素是否被选中 True or False

element.is_selected()

# 返回标签元素的名字

element.tag_name

# 获取当前标签的宽和高

element.size

# 获取元素的文本内容

element.text

# 模仿回车按钮 提交数据

element.submit()

# 获取当前元素的坐标

element.location

# 截取图片

element.screenshot()

常见异常

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

NoSuchElementException:没有找到元素

NoSuchFrameException:没有找到iframe

NoSuchWindowException:没找到窗口句柄handle

NoSuchAttributeException:属性错误

NoAlertPresentException:没找到alert弹出框

ElmentNotVisibleException:元素不可见

ElementNotSelectableException:元素没有被选中

TimeoutException:查找元素超时

原文地址:https://www.cnblogs.com/blackbird0423/p/8907296.html

时间: 2024-10-16 07:47:35

web自动化测试-D3-学习笔记之二(Selenium-WebDriverApi接口详解)的相关文章

java网络编程学习笔记(二):socket详解

1.Socket有多种构造方法,大多数构造方法在构造的时候就指定了连接的主机和端口号.当客户端的构造方法与服务器连接的时候,可能需要等待一段时间,因为需要建立连接.默认情况下,Socket的构造方法会一直等待下去,直到连接成功或者是出现异常.Socket的构造方法请求连接的时候,受到底层网络传输速度的影响,可能长时间处于等待状态.如果希望限定等待时间,就需要一个无参的构造方法,可以如下做: Socket socket=new Socket(); SocketAdress remoteAddr=n

Cocos2d-x学习笔记(二)AppDelegate类详解

由源代码,可得到如下的类继承关系: 在方法applicationDidFinishLaunching中,首先会调用CCDirector* pDirector = CCDirector::sharedDirector();来初始化导演类,导演类是一个单例,由下方法中可知,创建的是一个CCDisplayLinkDirector类对象.它是CCDirector的直接继承子类. CCDirector* CCDirector::sharedDirector(void) { if (!s_SharedDir

算法学习笔记 KMP算法之 next 数组详解

最近回顾了下字符串匹配 KMP 算法,相对于朴素匹配算法,KMP算法核心改进就在于:待匹配串指针 i 不发生回溯,模式串指针 j 跳转到 next[j],即变为了 j = next[j]. 由此时间复杂度由朴素匹配的 O(m*n) 降到了 O(m+n), 其中模式串长度 m, 待匹配文本串长 n. 其中,比较难理解的地方就是 next 数组的求法.next 数组的含义:代表当前字符之前的字符串中,有多大长度的相同前缀后缀,也可看作有限状态自动机的状态,而且从自动机的角度反而更容易推导一些. "前

Cocos2d-x学习笔记(十四)CCAutoreleasePool详解

原创文章,转载请注明出处:http://blog.csdn.net/sfh366958228/article/details/38964637 前言 之前学了那么多的内容,几乎所有的控件都要涉及内存管理类CCAutoreleasePool,所以这一次的学习笔记,我们一起来看看CCAutoreleasePool,先从CCObject的autorelease方法入手. CCObject::autorelease CCObject* CCObject::autorelease(void) { // 将

Kinect学习笔记之三Kinect开发环境配置详解

0.前言: 首先说一下我的开发环境,Visual Studio是2013的,系统是win8的64位版本,SDK是Kinect for windows SDK 1.8版本.虽然前一篇博文费了半天劲,翻译了2.0SDK的新特性,但我还是决定要回退一个版本. 其实我之前一直在用2.0的SDK在调试Kinect,但无奈实验室提供的Kinect是for Windows 1.0版本的,而且Kinect从1.8之后就好像是一个分水岭,就比如win8和win7有很大的差别,2.0版的Kinect和SDK都是相较

web自动化测试-D3-学习笔记之一(Selenium彩蛋篇-Xpath使用方法)

由于最新版火狐不在支持FireBug等开发工具,可以通过https://ftp.mozilla.org/pub/firefox/releases/下载49版本以下的火狐就可以增加Firebug等扩展了. 什么是Xpath? XPath是XML的路径语言,通俗一点讲就是通过元素的路径来查找到这个标签元素. 工具 Xpath的练习建议大家安装火狐浏览器后,下载插件,FireBug. Xpath使用方法 注:默认死格式 先写 //* 代表定位页面下所有元素 1.Xpath支持ID.Class.Name

Web前端开发学习笔记(二)

Homework2:http://my.ss.sysu.edu.cn/wiki/display/WEB/Homework+2+-+Movie+Review 这份作业跟布局相关,因此很多都是布局的知识: 1.display属性的block,inline-block,inline值的区分 其实真正需要区分的是inline-block和inline.都是在同一行内,怎么区分他们呢?首先要明白块元素和行内元素很重要的一点区别:块元素的高度和宽度我们都是可以控制的,而行内元素是不可以的.block对应的就

web自动化测试-D2-学习笔记之二(HTML基础之JS)

HTML中的三把利器的JS 又称为JavaScript,看着好像和Java有点联系,实际上他和java半毛钱关系都没有,JavaScript和我们学习的Python.Go.Java.C++等,都是一种独立的语言,Python的解释器有Python2.7.Python3.x,浏览器具有解释JavaScript的功能,所以它才是HTML的三把利器之一. 在HTML中可以将JavaScript/JS的代码写在head中,被script标签所包裹,当浏览器解释HTML时,遇到style标签时,按照CSS

小白日记44:kali渗透测试之Web渗透-SqlMap自动注入(二)-sqlmap参数详解REQUEST

Sqlmap自动注入(二) Request ################################################### #inurl:.php?id= 1. 数据段:--data Get/post都使用 [POST方法]Sqlmap -u "http://1.1.1.1/a.php" --data="user=1&pass=2" –f #sqlmap可自动识别"&" [GET方法]Sqlmap –u &