# -*- coding:utf-8 -*-

from selenium import webdriver

from selenium.webdriver.common.by import By

# 打开Chrome浏览器和百度网页

driver = webdriver.Chrome()

driver.get('https://www.baidu.com/')

# 元素定位:id绝对唯一,name其次

# id 定位‘百度首页输入框’元素,并输入内容

driver.find_element_by_id('kw').send_keys('软件测试')

driver.find_element(By.ID,'kw').send_keys('软件测试')

# classname

# 返回符合条件的第一个元素

driver.find_element_by_class_name('s_ipt').send_keys('今日新闻')

# 返回符合条件的所有元素,返回值是list,每一个值都是一个Webelement对象

# 不能再后面用send.key(),报错AttributeError: 'list' object has no attribute 'send_keys'

driver.find_elements_by_class_name('s_ipt')

# tag_name

driver.find_element_by_tag_name('span')

driver.find_elements_by_tag_name('span')

#name

driver.find_element_by_name('wd').send_keys('成功')

driver.find_elements_by_name('wd')

#link_text

driver.find_element_by_link_text('贴吧').click()#完全匹配,一模一样

driver.find_element_by_partial_link_text('贴').click()#模糊匹配,包含即可

driver.find_elements_by_link_text('贴吧')#完全匹配,一模一样

driver.find_elements_by_partial_link_text('贴')

# css

driver.find_element_by_css_selector('')

# xpath

driver.find_element_by_xpath('')

# 1. 绝对定位(不推荐用) : 以/开头,父/子关系

# 2. 相对定位

# A:以//开头,在这个html页面中,有木有符合表达式的元素

# //标签名[@属性名称=属性值]

# //标签名[@属性名称=属性值 and @属性名称=属性值]

#B:层级定位

# C: 文本内容定位: //标签名[text()='文本值']

# D: 包含定位 : contains

# contains(@属性名,属性值) 例如 //a[contains(@class,"btns-enter-qq")]

# contains(text(),属性值)

# E: 轴定位(通过以下轴名称定位)

# ancestor : 祖先节点,包括父

# parent : 父节点

# preceding: 当前元素节点标签之前的所有节点(html页面先后顺序)

# preceding-slibling:当前元素节点标签之前的所有兄弟结点

# following: 当前元素节点标签之后的所有节点(html页面先后顺序)

# following-slibling:当前元素节点标签之后的所有兄弟结点

# /轴名称::节点名称[@属性名=属性值]

python做自动化如何定位动态元素_python-web自动化-元素定位相关推荐

  1. 用python做一些excel的事情,实现数据自动化

    用了一段时间的python ,发觉python这小伙确实是做自动化的一把好手,鉴于python在自动化方面的良好的能力,python在自动化测试,自动化运维,爬虫等方面都有着良好的表现. 我们在日常工 ...

  2. 使用 mitmproxy + python 做拦截代理,解放双手,生成自动化测试用例

    前言 是不是有很多小伙伴在做接口自动化的时候,大量的测试用例数据,写的即枯燥,有乏味呢? 那么下面你们的福利来啦~本文章会基于 mitmproxy + python 做代理拦截,将我们拦截到的接口请求 ...

  3. python中del和remove的区别_Python列表删除元素del、pop()和remove()的区别小结

    前言 在python列表的元素删除操作中, del, pop(), remove()很容易混淆, 下面对三个语句/方法作出解释 del语句 del语句可以删除任何位置处的列表元素, 若知道某元素在列表 ...

  4. python列表取出元素_Python实现列表元素拼接并且提取索引号

    列表是Python当中的基本数据类型,下面我们介绍如何用循环将列表元素提取并且用指定的字符进行重新拼接以及打印出列表中所有元素的索引号. 工具/原料 电脑 Python开发工具 方法/步骤 1 建立一 ...

  5. 用python做一个简单的投票程序_Python——开发一个自动化微信投票器【附代码实例方法】...

    一个研究Python实践,最近研究一个投票的东东,主要是想测试利用Python实现刷微信投票. 本文纯粹为了记录一下 webdriver直接操作页面按钮的方法: #!/usr/bin/python # ...

  6. python网站设计中接口的作用_python接口自动化(三)--如何设计接口测试用例(详解)...

    简介 上篇我们已经介绍了什么是接口测试和接口测试的意义.在开始接口测试之前,我们来想一下,如何进行接口测试的准备工作.或者说,接口测试的流程是什么?有些人就很好奇,接口测试要流程干嘛?不就是拿着接口文 ...

  7. python字典查找元素_python字典获取元素

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 环境依赖python 2.7安装sdk安装 sdk 的方式有两种:pip 安装和 ...

  8. python 自动点击网页上按钮_python selenium自动化(一)点击页面链接测试

    需求:现在有一个网站的页面,我希望用python自动化的测试点击这个页面上所有的在本窗口跳转,并且是本站内的链接,前往到链接页面之后在通过后退返回到原始页面. 要完成这个需求就必须实现3点: 1. 找 ...

  9. python查微信好友是否删除自己_Python + Appium 自动化操作微信查找自己是否被删除...

    importtimefrom appium importwebdriver"""找出了删除我微信的所有人并将他们自动化删除了""" def ...

  10. python做的游戏可以导出吗_Python for RenderDoc批量导出模型和贴图

    故事背景: 美术那里有需求,需要别人游戏的模型,来借鉴一下,问我是否有工具可以一键导出模型.我就搜索了一下RenderDoc批量导出图片,结果搜到了用C++改RenderDoc源码的文章.让Rende ...

最新文章

  1. sql 根据多个ID删除表中多行数据
  2. 04. 字符串合并与拆分写法小结
  3. The most important part of the body
  4. php 二维数组去重
  5. 怪物猎人服务器维护时间,怪物猎人云服务器
  6. 京东php asp,jd jd demo 关于php的代码里面是 一些京东的接口 包含了 重要 WEB(ASP,PHP,...) 238万源代码下载- www.pudn.com...
  7. html网页和cgi程序编程,CGI 编程方式学习
  8. 微软公司2008新技术预览大会
  9. ERROR: Could not find a version that satisfies the requirement PIL (from versions: none)
  10. tkinter python(图形开发界面) 转自:渔单渠
  11. python面试必备10题_不吹不擂,你想要的Python面试都在这里了【315+道题】+精心整理的解答...
  12. 模拟电路仿真LTspice(2):三极管特性曲线
  13. hive分区表快速复制
  14. spring security 结合cas单点登录退出后的返回地址
  15. 路由器中继模式WISP、Client + AP、AP模式的区别和适使用场景
  16. 如何玩转OA系统业务审批流程
  17. Java获取2021年所有日期和节假日工作日状态
  18. python基础学习06_if条件判断(多重判断、嵌套、三目运算)
  19. Hadoop YARN容错机制
  20. 架构集一---语音连麦聊天室实现方案分析

热门文章

  1. html用a标签怎么提交表单?
  2. tab键的转义字符_Python转义字符及用法
  3. 电脑显示链接网络正常但是不能上网,用某些软件会提示系统丢失libeay32.dll
  4. mac 远程ftp服务器文件共享,mac 远程ftp服务器文件
  5. centos8服务器创建新用户并指定该用户只能打开某个目录文件
  6. java职业教育考试题_Java认证考试中Java构造方法题目解答
  7. 服务器物理内存总是九十几,服务器物理内存使用率90以上
  8. 浙大计算机硕士比本科985,二本出身的985研究生与985本科生,哪个更厉害?网友:差的太多!...
  9. java json写入内存_如何在客户端上减少JSON.stringify使用的内存量?
  10. android config.mk,android编译分析之10—config.mk