在操作各项页面元素之前,先介绍下如何通过Python代码来找到这些元素。WebDriver提供了18种元素定位方法,共分为两类(定位当个元素、定位组元素),本节先举例详细介绍下selenium4-定位单个页面元素的方法,注意和selenium3元素定位方法之间的区别。
from selenium import webdriver
from selenium.webdriver.chrome.service import Service # 管理驱动程序的启动和停止
from selenium.webdriver.common.by import By # 通过ID定位页面元素
service = Service(r"C:\Users\USER\AppData\Local\Programs\Python\Python37\chromedriver.exe")
driver = webdriver.Chrome(service=service)
driver.get("http://www.baidu.com")
driver.find_element(By.ID, 'kw').send_keys('selenium') # 定位到百度搜索框,输入关键词
sleep(2)
driver.quit() # 通过name定位页面元素
service = Service(r"C:\Users\USER\AppData\Local\Programs\Python\Python37\chromedriver.exe")
driver = webdriver.Chrome(service=service)
driver.get("http://www.baidu.com")
driver.find_element(By.NAME, 'wd').send_keys('selenium')
sleep(2)
driver.quit() # 通过clas name定位页面元素
service = Service(r"C:\Users\USER\AppData\Local\Programs\Python\Python37\chromedriver.exe")
driver = webdriver.Chrome(service=service)
driver.get("http://www.baidu.com")
driver.find_element(By.CLASS_NAME, 's_ipt').send_keys('selenium')
sleep(2)
driver.quit() # 通过tag name定位页面元素
service = Service(r"C:\Users\USER\AppData\Local\Programs\Python\Python37\chromedriver.exe")
driver = webdriver.Chrome(service=service)
driver.get("http://www.baidu.com")
driver.find_element(By.TAG_NAME, 'input').send_keys('selenium')
sleep(2)
driver.quit() # 通过链接中的全部文字定位元素
service = Service(r"C:\Users\USER\AppData\Local\Programs\Python\Python37\chromedriver.exe")
driver = webdriver.Chrome(service=service)
driver.get("http://www.baidu.com")
driver.find_element(By.LINK_TEXT, '新闻').click()
sleep(2)
driver.quit() # 通过链接中的部分文字定位元素
service = Service(r"C:\Users\USER\AppData\Local\Programs\Python\Python37\chromedriver.exe")
driver = webdriver.Chrome(service=service)
driver.get("http://www.baidu.com")
driver.find_element(By.PARTIAL_LINK_TEXT, '闻').click()
sleep(2)
driver.quit() # 通过XPath定位元素
service = Service(r"C:\Users\USER\AppData\Local\Programs\Python\Python37\chromedriver.exe")
driver = webdriver.Chrome(service=service)
driver.get("http://www.baidu.com")
driver.find_element(By.XPATH, '//*[@id="s-top-left"]/a[1]').click()
sleep(2)
driver.quit() # 通过CSS定位元素
service = Service(r"C:\Users\USER\AppData\Local\Programs\Python\Python37\chromedriver.exe")
driver = webdriver.Chrome(service=service)
driver.get("http://www.baidu.com")
driver.find_element(By.XPATH, '//*[@id="kw"]').send_keys('selenium')
sleep(2)
driver.find_element(By.XPATH, '//*[@id="su"]').click()
sleep(2)
driver.quit()

后面小节我们继续讲解selenium4-定位组元素的方法。

selenium4-定位单个页面元素的更多相关文章

  1. appium 无法通过工具定位webview页面元素的问题

    app里面页面有原生和webview的,或者H5的 1.手机百度搜索结果页面 手机百度,点击搜索输入框,输入关键字点击搜索,出来的搜索结果页面,无法通过UI automator viewer来定位元素 ...

  2. 用XPath定位Web页面元素时,如何快速验证XPath语句是否正确?

    在使用Selenium做Web UI自动化测试的过程中,XPath是一种定位页面元素的常用方式.然而,面对某些元素的XPath路径过于复杂,我们想快速验证拼凑的Xpath语句是否正确时,该怎么办呢?这 ...

  3. Selenium with Python 003 - 页面元素定位

    WebUI自动化,首先需要定位页面中待操作的元素,然后进行各种事件操作,这里我们首先介绍Selenium Python 如何定位页面元素,WebDriver 提供了一系列的方法. 定位单个页面元素(返 ...

  4. Python3 Selenium自动化web测试 ==> 第二节 页面元素的定位方法 <上>

    前置步骤: 上一篇的Python单元测试框架unittest,我认为相当于功能测试测试用例设计中的用例模板,在自动化用例的设计过程中,可以封装一个模板,在新建用例的时候,把需要测试的步骤添加上去即可: ...

  5. java selenium webdriver实战 页面元素定位

    自动化测试实施过程中,测试程序中常用的页面操作有三个步骤 1.定位网页上的页面元素,并存储到一个变量中 2.对变量中存储的页面元素进行操作,单击,下拉或者输入文字等 3.设定页面元素的操作值,比如,选 ...

  6. sellenium页面元素的定位方法

    1.findElements函数可用于多个元素定位 (1)使用ID定位:driver.findElement(By.id("ID值")); 例:HTML代码: 定位语句代码:Web ...

  7. Selenium2(java)定位页面元素 二

    辅助工具: chrome浏览器,F12打开控制台; Firefox浏览器,F12打开控制台; 或者选中要定位的元素右键 安装firefox扩展firebug和firepath; 安装之后F12可调用f ...

  8. java selenium webdriver第二讲 页面元素定位

    自动化测试实施过程中,测试程序中常用的页面操作有三个步骤 1.定位网页上的页面元素,并存储到一个变量中 2.对变量中存储的页面元素进行操作,单击,下拉或者输入文字等 3.设定页面元素的操作值,比如,选 ...

  9. 关于appium操作真机打开app之后无法定位页面元素的问题的解决办法

    appium操作真机打开app后无法定位页面元素:例如微信或者支付宝支付时,手机的安全控件会对支付环境进行保护,会断掉当前appium与真机的链接,导致连接失败,无法定位到页面元素,在做ui自动化之前 ...

随机推荐

  1. PHP小知识收集

    PEAR 是"PHP Extension and Application Repository"的缩写,即PHP扩展和应用仓库. PECL 是"PHP Extension ...

  2. Odoo env.ref()函数

    python env.ref()函数作用是获取xml id记录. 1 action = self.env.ref('base.res_company_action').read()[0] 2 acti ...

  3. Docker部署kafka|Go操作实践

    前言 写作本文的背景是由于字节的暑期青训营中,某个项目要求编写一个简易的流处理引擎(flink),开发语言不限,推荐Java,本着好奇心的驱使,我打算使用Go语言进行部分尝试. 既然是流处理引擎,那么 ...

  4. placeholder 设置换行三种方式

    在 html 中编写代码时保留代码换行 <textarea name="" id="" cols="30" rows="10 ...

  5. ABP中的数据过滤器

      本文首先介绍了ABP内置的软删除过滤器(ISoftDelete)和多租户过滤器(IMultiTenant),然后介绍了如何实现一个自定义过滤器,最后介绍了在软件开发过程中遇到的实际问题,同时给出了 ...

  6. Linux 02 基本命令

    参考源 https://www.bilibili.com/video/BV187411y7hF?spm_id_from=333.999.0.0 版本 本文章基于 CentOS 7.6 工具 清屏 cl ...

  7. 052_末晨曦Vue技术_处理边界情况之程序化的事件侦听器

    程序化的事件侦听器 点击打开视频讲解更详细 现在,你已经知道了 $emit 的用法,它可以被 v-on 侦听,但是 Vue 实例同时在其事件接口中提供了其它的方法.我们可以: 通过 $on(event ...

  8. 【LOJ#3197】【eJOI2019】T形覆盖 - (图论、简单推导)

    题面 题解 (题目中说的四种摆放方式实际上是分别旋转0°,90°,180°,270°后的图形) 题目中关于摆放方式的描述听起来很臭,我们把它转换一下,每个拼版先覆盖"上下左右中"五 ...

  9. 持久化-DLL劫持

    持久化-DLL劫持 原理 通过篡改.替换和代理原dll文件来达到劫持. 原理演示 假定演练流程 假定我们要劫持的目标是 c:\temp\legit.dll 获取 c:\temp\legit.dll 所 ...

  10. MySQL递归查询语法

    业务上有一个递归查询数据表进行累加计算的需求,实现方式上有函数.SQL语句等多种方式,最后选择了SQL方式,如下: <select id="selectChildren" p ...