Python脚本Selenium及页面Web元素定位详解

目录
  • Selenium特点
  • 八种定位方式
    • 1、driver.find_element_by_xpath(value)
    • 2、driver.find_element_by_css_selector(value)
    • 3、driver.find_element_by_id(value)
    • 4、driver.find_element_by_name(value)
    • 5、driver.find_element_by_class_name(value)
    • 6、driver.find_element_by_tag_name(value)
    • 7、driver.find_element_by_link_text(value)
    • 8、driver.find_element_by_partial_link_text(value)

Selenium特点

开源,免费

多浏览器支持:firefox、chrome、IE

多平台支持:linux 、windows、MAC

多语言支持:java、python、ruby、php、C#、

对web页面有良好的支持

简单(API 简单)、灵活(用开发语言驱动)

支持分布式测试用例执行一、

八种定位方式

1、driver.find_element_by_xpath(value)

可以使用自带的copy xpath 进行定位
不推荐使用这种方法进行元素定位,后续开发修改代码路径发生变化就需要重新进行定位

// 使用xpath进行定位
from selenium import webdriver
driver = webdriver.Chrome() //打开谷歌
driver.get("http://www.baidu.com") //打开百度链接
//通过id定位到输入框的位置,send_keys('') 往输入框填写内容
driver.find_element_by_name("wd").send_keys("Selenium八大元素定位")
//通过id定位到按钮的位置并进行点击,click() 点击操作
driver.find_element_by_id("su").click()
//通过xpath定位获取元素位置
driver.find_element_by_xpath('//*[@id="2"]/h3/a').click()
 

利用元素属性进行xpath定位

// 利用元素属性进行xpath定位
from selenium import webdriver
driver = webdriver.Chrome() //打开谷歌
driver.get("http://www.baidu.com") //打开百度链接
//通过id定位到输入框的位置,send_keys('') 往输入框填写内容
driver.find_element_by_name("wd").send_keys("Selenium八大元素定位")
//通过id定位到按钮的位置并进行点击,click() 点击操作
driver.find_element_by_id("su").click()
//通过元素属性进行xpath定位  元素的值需要是唯一的
driver.find_element_by_xpath('//a[@href="https://www.baidu.com/link?url=whqbCegRZQsSTccYyuTdx3JumdN0qSFUFOo_xM_ESykWekftGjVFXAq55MMqjvQL0NG7iI1l6irIW_vdPN7h-K&wd=&eqid=d07979d2000631b10000000661443a3f" rel="external nofollow" ]').click()
 

2、driver.find_element_by_css_selector(value)

// 搜索百度使用f12定位到输入框的位置
<input id="kw" name="wd" class="s_ipt" value="" maxlength="255" autocomplete="off">
 
from selenium import webdriver
driver = webdriver.Chrome() //打开谷歌
driver.get("http://www.baidu.com") //打开百度链接
//标签名及属性(含属性值)组合定位,方式有很多不一一举例
driver.find_element_by_css_selector('input[name="wd"]').send_keys("Selenium八大元素定位")
 

3、driver.find_element_by_id(value)

// 搜索百度使用f12定位到按钮的位置
<input type="submit" id="su" value="百度一下" class="bg s_btn">
// 使用id 定位到输入框的位置
from selenium import webdriver
driver = webdriver.Chrome() //打开谷歌
driver.get("http://www.baidu.com") //打开百度链接
//通过id定位到按钮的位置并进行点击,click() 点击操作
driver.find_element_by_id("su").click()

4、driver.find_element_by_name(value)

// 搜索百度使用f12定位到输入框的位置
<input id="kw" name="wd" class="s_ipt" value="" maxlength="255" autocomplete="off">
 
// 使用name 定位到输入框的位置
from selenium import webdriver
driver = webdriver.Chrome() //打开谷歌
driver.get("http://www.baidu.com") //打开百度链接
//通过id定位到输入框的位置,send_keys('') 往输入框填写内容
driver.find_element_by_name("wd").send_keys("Selenium八大元素定位")
 

5、driver.find_element_by_class_name(value)

// 搜索百度使用f12定位到输入框的位置
<input id="kw" name="wd" class="s_ipt" value="" maxlength="255" autocomplete="off">
 
// 使用name 定位到输入框的位置
from selenium import webdriver
driver = webdriver.Chrome() //打开谷歌
driver.get("http://www.baidu.com") //打开百度链接
driver.find_element_by_class_name("s_ipt").send_keys("Selenium八大元素定位")
 

6、driver.find_element_by_tag_name(value)

// 使用标签名进行定位
from selenium import webdriver
driver = webdriver.Chrome() //打开谷歌
driver.get("http://www.baidu.com") //打开百度链接
driver.find_element_by_tag_name("input")//通过标签名去定位,不推荐重复率很高
 

7、driver.find_element_by_link_text(value)

// 搜索百度使用f12定位到按钮的位置
<a href="http://news.baidu.com" rel="external nofollow"  rel="external nofollow"  target="_blank" class="mnav c-font-normal c-color-t">新闻</a>
 
//此定位方式主要是对超链接进行定位,填写的内容是完整的超链接文字
from selenium import webdriver
driver = webdriver.Chrome() //打开谷歌
driver.get("http://www.baidu.com") //打开百度链接
//此定位方式主要是对超链接进行定位,也就是html中的<a>标签,括号中填写的值是完整的超链接文字
driver.find_element_by_link_text("新闻").click()
 

8、driver.find_element_by_partial_link_text(value)

// 搜索百度使用f12定位到按钮的位置
<a href="http://news.baidu.com" rel="external nofollow"  rel="external nofollow"  target="_blank" class="mnav c-font-normal c-color-t">新闻</a>
 
//此定位方式主要是对超链接进行定位,填写的内容是部分的超链接文字
from selenium import webdriver
driver = webdriver.Chrome() //打开谷歌
driver.get("http://www.baidu.com") //打开百度链接
//此定位方式主要是对超链接进行定位,也就是html中的<a>标签,括号中填写的值是部分的超链接文字
driver.find_element_by_partial_link_text("新").click()
 

以上就是Python脚本Selenium及页面Web元素定位详解的详细内容,更多关于脚本Selenium页面Web元素定位的资料请关注我们其它相关文章!

(0)

相关推荐

  • Selenium Webdriver元素定位的八种常用方式(小结)

    在使用selenium webdriver进行元素定位时,通常使用findElement或findElements方法结合By类返回的元素句柄来定位元素.其中By类的常用定位方式共八种,现分别介绍如下. 1. By.name() 假设我们要测试的页面源码如下: <button id="gbqfba" aria-label="Google Search" name="btnK" class="gbqfba"><

  • Selenium元素定位的30种方式(史上最全)

    Selenium对网页的控制是基于各种前端元素的,在使用过程中,对于元素的定位是基础,只有准去抓取到对应元素才能进行后续的自动化控制,我在这里将对各种元素定位方式进行总结归纳一下. 这里将统一使用百度首页(www.baidu.com)进行示例,f12可以查看具体前端代码. WebDriver8种基本元素定位方式 find_element_by_id() 采用id属性进行定位.例如在百度页面中输入关键字 Selenium 进行搜索.百度部分关键源码如下: <span class="bg s_

  • 详解Selenium 元素定位和WebDriver常用方法

    一.定位元素的8种方式 1.方法介绍 定位一个元素 定位多个元素 含义 find_element_by_id() find_elements_by_id() 通过元素id定位 find_element_by_name() find_elements_by_name() 通过元素name定位 find_element_by_xpath() find_elements_by_xpath() 通过xpath表达式定位 find_element_by_link_text() find_elements_

  • 浅谈Selenium+Webdriver 常用的元素定位方式

    假设页面源代码如下: <input type="text"name="wd" id="kw1" class="input_wd" maxlength="100"style="width:474px;"autocomplete="off"> 通过id定位元素:find_element_by_id("id_vaule"): browser=

  • Selenium执行JavaScript脚本的方法示例

    JavaScript是运行在客户端(浏览器)和服务器端的脚本语言,允许将静态网页转换为交互式网页.可以通过 Python Selenium WebDriver 执行 JavaScript 语句,在Web页面中进行js交互.那么js能做的事,Selenium应该大部分也能做.WebDriver是模拟终端用户的交互,所以就不能点击不可见的元素,有时可见元素也不能点击.在这些情况下,我们就可以通过WebDriver 执行JavaScript来点击或者执行页面元素.本文将介绍如何使用 WebDriver

  • Python脚本Selenium及页面Web元素定位详解

    目录 Selenium特点 八种定位方式 1.driver.find_element_by_xpath(value) 2.driver.find_element_by_css_selector(value) 3.driver.find_element_by_id(value) 4.driver.find_element_by_name(value) 5.driver.find_element_by_class_name(value) 6.driver.find_element_by_tag_na

  • python自动化测试selenium核心技术三种等待方式详解

    目录 1 使用python自带模块time的sleep方式 2 隐式等待(implicitly_wait) 3 显示等待(WebDriverWait) UI自动化测试过程中,可能会出现因测试环境不稳定.网络慢等情况,如果不做任何处理的话,会出现无法定位到特定元素而报错,导致自动化测试无法顺利执行. selenium官网手册:Waits | Selenium slenium自动化测试中,主要涉及三种等待方式: 1 使用python自带模块time的sleep方式 缺点:即使网络条件较好时,依旧按照

  • Python结合Selenium简单实现Web自动化测试

    这篇文章是入门级别的应用Python + Selenium进行自动化测试,包括环境搭建及简单的实例.基本思想是用Firefox Selenium IDE插件录制脚本并生成Python代码,用Python结合Selenium及浏览器驱动程序执行脚本.操作系统是Windows,过程中有不明白的地方记得百度下,比如不知道如何打开Windows CMD命令行.不知道如何设置环境变量等,因为本文的前提是读者已有一定的基础知识. 安装Python,访问其官网www.python.org下载最新版本,建议选择

  • Selenium 滚动页面至元素可见的方法

    滚动页面 在自动化操作中,如果web页面过长,而我们需要的元素并不在当前可视页面中,那么selenium就无法对其进行操作:此时,我们就需要像平时操作浏览器一样来滚动页面,使我们需要操作的对象可见! 滚动页面的方法: window.scrollBy() window.scrollBy(0,500)    向下滚动500个像素 window.scrollBy(0,-500) 向上滚动500个像素 window.scrollBy(500,0)    向右滚动500个像素 window.scrollB

  • python+selenium 脚本实现每天自动登记的思路详解

    最近受疫情影响,学校要求每天必须进行健康登记,而我身处大山深处,身体健康,足不出户,奈何总是容易忘记,遂决定手撸一个自动登记的小程序,仅供学习交流之用,话不多说,直接上代码. 配置:Chrom python3.7 selenium库,webdriver等 基本思路,使用selenium模拟浏览器自动登录,需要解决验证码的提取,嵌套表单的提取,弹窗处理,异常处理. 为了防止大家用此网站测试,搞垮服务器,关键网址我已隐藏. import selenium.webdriver import time

  • Python+Selenium键盘鼠标模拟事件操作详解

    目录 元素的基本操作 鼠标键盘模拟事件操作 利用 Keys 模块模拟键盘操作事件 利用 Action 类模拟鼠标操作事件 当我们定位到具体的一个元素的时候就可以对这个元素进行具体的操作,比如之前章节所执行的 click 操作.这是最简单的操作,webdriver 还有其他的操作.比如元素的基本操作(点击.输入.清除),还有一些高级操作如鼠标键盘模拟事件.弹出框处理.多页面切换等… 这些都是需要我们了解的内容,也是在做自动化测试的时候经常遇到的一些基本场景.今天这一章节,我们就先来学习一下元素的基

  • PHP与Web页面的交互示例详解二

    前言 在<PHP学习笔记-PHP与Web页面的交互1>笔记中讲解了form表单的一些属性,包括它的输入域标记.选择域标记和文字域标记的写法,接下来的内容就是讲如何获取表单数据以及PHP数据的传递,包括对各种控件值的获取. 插入表单 提交表单之前一定得有表单,当我们的表单创建完毕后可以将表单插入Web页中,代码如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://w

  • PHP与Web页面的交互示例详解一

    前言 这篇笔记记录的是Web表单的相关操作,Web表单主要用来在网页中发送数据到服务器.比如在日常开发中,提交注册时需要提交表单,表单从客户端传送到服务器,经过服务器处理后,再将用户所需要的信息传递回客户端,进而实现PHP与Web表单的交互. 表单 使用<form>元素,并在其中插入相关的表单元素,即可创建一个表单. 表单结构: <form name="form_name" method="method" action="url"

  • 微前端之Web组件自定义元素示例详解

    目录 我们知道的 Web组件使用 名称规范 组件传参数并可以写模板包括js和css Shadow Dom 影子节点 类中的构造函数和钩子函数 getter/setter属性和属性反射 扩展原生 HTML 我们知道的 第一:我们熟知的HTML标签有 a, p, div, section, ul, li, h2, article, head, body, strong, video, audio 等等 第二:我们知道,a标签是链接,p标签是段落,div是块级,h2是字体,strong 是粗体,vid

随机推荐