返回顶部
首页 > 资讯 > 后端开发 > Python >Selenium:WebDriver简介及元素定位
  • 753
分享到

Selenium:WebDriver简介及元素定位

selenium自动化python自动化测试接口测试 2023-10-24 17:10:16 753人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录 一、WebDriver原理 二、WebDriver定位方法 三、WebElement接口常用方法 一、WebDriver原理 1、关于WebDriver 设计模式:按照Server-Client的经典设计模式设计; Server端

目录

一、WebDriver原理

二、WebDriver定位方法

三、WebElement接口常用方法


一、WebDriver原理

1、关于WebDriver

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

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

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

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

2、WebDriver工作流程

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

Client端通过CommandExcuter发送HTTPRequest给Remote Server的侦听端口(通信协议:the webdriver wire protocol);

Remote Server需要依赖原生的浏览器组件(比如:chromedriver.exe)来转化浏览器的native调用;

3、WebDriver.log

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

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

 1 # coding=utf-8 2 # 导入logging模块,捕捉Client发送的请求 3 from selenium import webdriver 4 import logging 5 from selenium import webdriver 6 from selenium.webdriver.support.select import Select # select类 7 from selenium.webdriver.common.by import By #By类:定位元素 8  9 logging.basicConfig(level=logging.DEBUG)10 driver = webdriver.Chrome("F:\安装工具\Python\chromedriver.exe")11 driver.get("www.baidu.com")12 13 driver.find_element_by_id("kw").send_keys("selenium")14 driver.find_element_by_id("su").click()15 driver.quit() 

二、WebDriver定位方法

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

1、WebDriver定位方法

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

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

3、用By定位元素

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

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

1 # 导入By类的包 2 from selenium.webdriver.common.by import By 3 find.element(by.id,"kw") 4 find.element(by.name,"wd") 5 find.element(by.class_name,"s_ipt") 6 find.element(by.tag_name,"input") 7 find.element(by.link_text,"新闻") 8 find.element(by.partial_link_text,"新") 9 find.element(by.xpath,"//*[@class='bg s_btn'")10 find.element(by.css_selector,"span.bg s_btn_wr>input#su")

4、定位一组元素

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

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

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

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

1 # webdriver提供的定位一组元素方法2 id                    find_elements_by_id()3 Name                  find_elements_by_name()4 class_name            find_elements_by_class_name()5 tag Name              find_elements_by_tag_name()          6 link text             find_elements_by_link_text()7 partial link text     find_elements_by_partial_link_text()8 xpath                 find_elements_by_xpath()9 CSS selector          find_elements_by_css_selector()

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

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

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

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

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

......

三、WebElement接口常用方法

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

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

1 # 提交表单2 from select import webdriver3 driver = webdriver.Chrome("安装工具\python\chromedriver.exe")4 driver.get("http://www.baidu.com")5 driver.find_element_by_id("kw").send_keys("imyalost")6 # 提交输入框中的内容7 driver.find_element_by_id("imyalost").submit()8 driver.quit()

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

clear():清除文本;

send_keys(*value):模拟按键输入;

click():单击元素;

size:返回元素的尺寸;

text:获取元素的文本;

get.attribute(name):获得属性值;

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

 1 # webelement接口常用方法 2 from selenium import webdriver 3 driver = webdriver.Chrome("安装工具\python\chromedriver.exe") 4 driver.get("http://www.baidu.com") 5 # 获得输入尺寸 6 size = driver.find_element_by_id("kw").size 7 print("size") 8 # 返回百度页面底部备案信息 9 text = driver.find_element_by_id("cp").text10 print("text")11 # 返回元素的属性值,可以是id、name、type或其他属性12 attribute = driver.find_element_by_id("kw").get_attribute("type")13 print("attribute")14 # 返回元素结果是否可见,返回结果为True或Flase15 result = driver.find_element_by_id("kw").is_displayed()16 print("result") 

加油吧,测试人!如果你需要提升规划,那就行动吧,在路上总比在起点观望的要好。未来的你肯定会感谢现在拼命的自己! 

来源地址:https://blog.csdn.net/weixin_47648853/article/details/130427378

--结束END--

本文标题: Selenium:WebDriver简介及元素定位

本文链接: https://lsjlt.com/news/441614.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Selenium:WebDriver简介及元素定位
    目录 一、WebDriver原理 二、WebDriver定位方法 三、WebElement接口常用方法 一、WebDriver原理 1、关于WebDriver 设计模式:按照Server-Client的经典设计模式设计; Server端...
    99+
    2023-10-24
    selenium 自动化 python 自动化测试 接口测试
  • appium测试之APP元素定位及基本工具介绍
    添加配置 这里跟我们之前所说的appium测试工具的配置差不多。 deviceName:设备名称 platformName:测试平台 platformVersion:平台版本 app...
    99+
    2024-04-02
  • python---定位元素
    1.定位元素:以百度输入框和搜索为例子 (1)id定位 :id属性在html文档中是唯一的find_element_by_id()方法通过id属性定位元素(2)name定位find_element_by_name()方法(3)class定位...
    99+
    2023-01-31
    元素 python
  • selenium---元素定位(find_element)
    find_element属于定位元素的一种方法,包含了常用的定位方法。 在使用find——element 时 一定要导入相关的包,不然会报错 from selenium import webd...
    99+
    2023-08-30
    selenium python chrome
  • python+selenium-元素定位
      最近在学习web自动化测试,web自动化测试中元素定位是基本功也是很重要的一环,常用的元素定位方式网上都有很多的,一般采用强大的xpath方式来定位,xpath中又包含了很多其他方法。当然,在学习元素定位之前,需要要对前端要有一定的了...
    99+
    2023-01-30
    元素 python selenium
  • 使用绝对定位来定位元素参数的方法介绍
    如何使用绝对定位的参数进行定位? 随着网页设计的发展,对元素位置的精确控制成为了设计师和开发者追求的目标。而绝对定位(Absolute Positioning)提供了一种让元素根据其父元素进行定位的方法。在这篇文章中,我将向大家...
    99+
    2024-01-23
    使用方法 绝对定位 参数定位
  • CSS中元素定位方法的详细介绍
    这篇文章主要介绍“CSS中元素定位方法的详细介绍”,在日常操作中,相信很多人在CSS中元素定位方法的详细介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”CSS中元素定位方法...
    99+
    2024-04-02
  • JavaScript怎么定位元素
    本篇内容主要讲解“JavaScript怎么定位元素”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaScript怎么定位元素”吧! ...
    99+
    2024-04-02
  • 绝对定位元素与相对定位元素的区别与联系
    绝对定位元素与相对定位元素的区别与联系,需要具体代码示例 在HTML和CSS中,我们经常会使用绝对定位和相对定位来控制元素的位置和布局。绝对定位和相对定位是两种常见的定位方式,它们在实际应用中有着不同的特性和用途。本文将详细介绍...
    99+
    2024-01-23
    绝对定位:引用 移动和布局元素
  • python定位元素的方法
    python中实现定位元素的方法有以下几种通过id定位元素drive.find_element_by_id('id_value')通过name定位元素drive.find_element_by_name()通过tag_name定位元素dri...
    99+
    2024-04-02
  • Python中怎么定位元素
    本篇文章为大家展示了Python中怎么定位元素,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。确定网站没有设置反爬措施,是否能直接返回待解析的内容:import requests ...
    99+
    2023-06-15
  • Python脚本Selenium及页面Web元素定位详解
    目录Selenium特点八种定位方式1、driver.find_element_by_xpath(value)2、driver.find_element_by_css_selec&#...
    99+
    2024-04-02
  • 学会实现元素的固定定位,掌握固定定位元素的步骤和技巧
    如何实现元素的固定定位?掌握实现元素固定定位的方法和步骤 在网页设计和开发中,元素的位置布局是非常重要的一部分。很多时候,我们希望某个元素在页面滚动时保持固定位置,即元素会随着页面滚动而滚动,但在滚动过程中仍保持固定的位置。这时...
    99+
    2024-01-20
    实现方法 固定定位 元素定位
  • HTML5行内元素和块级元素的简介与区别
    HTML5行内元素和块级元素简介及区别HTML5是一种用于创建网页结构的标记语言。在HTML5中,元素被分为两种类型:行内元素(inline elements)和块级元素(block elements)。行内元素简介:行内元素是指在文档流中...
    99+
    2023-12-28
    html 区别 简介 块级元素 行内元素
  • Selenium元素定位方法总结
    Selenium可以驱动浏览器完成各种操作,比如模拟点击等。要想操作一个元素,首先应该识别这个元素。人有各种的特征(属性),我们可以通过其特征找到人,如通过身份证号、姓名、家庭住址。同理,一个元素会有各种的特征(属性),我们可以通过这个属性...
    99+
    2023-09-21
    html css python selenium
  • css中元素的定位方法
    css 元素定位有四种方法:静态、相对、绝对和固定定位。静态定位是默认值,元素不受定位规则影响。相对定位相对于元素本身移动元素,不会影响文档流。绝对定位将元素从文档流中移除并相对于其祖先...
    99+
    2024-04-26
    css 绝对定位 相对定位 静态定位 固定定位
  • CSS中伪元素的简单介绍
    本篇内容主要讲解“CSS中伪元素的简单介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“CSS中伪元素的简单介绍”吧!顾名思义,伪元素就是你的文档中若有实无的元...
    99+
    2024-04-02
  • CSS如何实现子元素相对于父元素固定定位
    这篇“CSS如何实现子元素相对于父元素固定定位”文章,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要参考一下,对于“CSS如何实现子元素相对于父元素固定定位”,小编整理了以下知识点,请大家跟着小编的步伐一步一步的慢慢...
    99+
    2023-06-08
  • 解析基于元素位置的固定定位原理
    固定定位:基于元素位置的固定定位原理解析,需要具体代码示例 如果你在网页设计或开发中曾经需要固定某个元素的位置,那么你就会用到CSS中的固定定位(position:fixed)。固定定位是一种可以将元素固定在页面的特定位置的CS...
    99+
    2024-02-02
    原理 元素 定位 css布局 固定定位
  • Python爬虫网页元素定位术
    目录实战场景基础用法如下所示BeautifulSoup 模块的对象说明BeautifulSoup 对象Tag 对象NavigableString 对象Comment 对象find()...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作