python-web自动化-元素定位
# -*- 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-web自动化-元素定位的更多相关文章
- selenium+python自动化元素定位
最近学习自动化测试,终于初步学习完成,需要进行博客日志总结,加深巩固自己的知识. 元素的八种定位方式 1.id 以百度为例子 我们在python输入的元素定位语法:bs.find_element_by ...
- selenium+python自动化-元素定位
自动化只要掌握四步操作:获取元素,操作元素,获取返回结果,断言(返回结果与期望结果是否一致),最后自动出测试报告. 本篇主要讲几种基本的元素定位方法元素定位在这四个环节中是至关重要的,如果说按学习精力 ...
- Appium + Python自动化 - 元素定位uiautomatorviewer
元素定位主要介绍如何使用uiautiomatorviewer,通过定位到页面上的元素,然后进行相应的点击等操作.uiautiomatorviewer是android-sdk自带的一个元素定位工具,非常 ...
- Appium+python自动化-元素定位uiautomatorviewer的使用
前言 环境搭建好了,下一步元素定位,元素定位本篇主要介绍如何使用uiautomatorviewer,通过定位到页面上的元素,然后进行相应的点击等操作. uiautomatorviewer是androi ...
- web页面元素定位
所有web网页中有8种元素定位方式 靠单一的特征找元素:6种(id,class_name,tag_name,name,link_text(2))组合各种特征和关系来找元素:2种(xpath,css) ...
- 【Python web自动化】之读取配置文件参数,利用cookie返回值进行跳过验证码进行登录操作
当进行Python的Web自动化时,会涉及到验证码问题,该如何跳过执行呢,下面请看代码: 1.首先新建配置文件*.ini格式 config.ini [db] #基础地址: baseurl = http ...
- python+selenium遇到元素定位不到的问题,顺便记录一下自己这次的错误(报错selenium.common.exceptions.NoSuchElementException)
今天在写selenium一个发送邮件脚本时,遇到一些没有找到页面元素的错误.经过自己反复调试,找原因百度,终于解决了.简单总结一下吧,原因有以下几点: 一:Frame控件嵌套,.Frame/Ifram ...
- app自动化 - 元素定位不到?别慌,3大工具帮你搞定!
在日常的android app自动化测试工作当中,很多朋友在元素定位时,会遇到以下类似的报错: 然后会来问,这是啥情况? 一般情况下,都会送上以下亲切的关怀: 1)adb能识别到设备吗? 2)设备有被 ...
- APPIUM-Android自动化元素定位方式
一.常用元素定位方法 appium从selenium中继承了所有的元素定位方法, 并且增加了一些自己的元素定位方式,下方截图分别为selenium和MobileBy包源码: 但是从继承selenium ...
- python + web自动化,点击不生效,提示“selenium.common.exceptions.ElementClickInterceptedException: Message: element click intercepted: Element is not clickable at point (117, 674)”
前言: 在做web自动化时,遇到一个缩放了浏览器比例的操作,从100%缩小到80%,再进行点击的时候,弹出报错信息,无法点击 selenium.common.exceptions.ElementCli ...
随机推荐
- 破解 JS(原型)继承
总体分为四大类:利用空对象作为中介继承.Object.create 继承.setPrototypeOf 继承.拷贝继承 function Animal(name, age) { this.name = ...
- .net Monitor产生SynchronizationLockException异常的原因
有时在使用Monitor进行并发同步编程时,会产生SynchronizationLockException异常,抛出的异常内容是"Object synchronization method ...
- 【深入理解Java集合框架】红黑树讲解(上)
来源:史上最清晰的红黑树讲解(上) - CarpenterLee 作者:CarpenterLee(转载已获得作者许可,如需转载请与原作者联系) 文中所有图片点击之后均可查看大图! 史上最清晰的红黑树讲 ...
- web在线智能四则运算挑战赛
本网站主要针对小学生,是一个智能在线学习和测试平台,平台有精美炫酷的网页,和可靠的数据,主要特色,自动出题.验证码机制.非空检测.正则匹配不同年级同学而出不同难度的题目,在线结算.时间控制,时间一到自 ...
- NVMe协议1.3c(一) 概述
刚开始接触NVMe,对此理解不深,如有错误敬请指出 1.1概述 NVM ExpressTM(NVMeTM)接口允许主机软件与非易失性存储器子系统通信. 此接口针对企业和客户端固态驱动器进行了优化,通常 ...
- centos 安装桌面系统
yum -y groupinstall "Desktop" "Desktop Platform" "X Window System" &qu ...
- tail语法
本文介绍Linux下tail命令的使用方法.linux tail命令用途是依照要求将指定的文件的最后部分输出到标准设备,通常是终端,通俗讲来,就是把某个档案文件的最后几行显示到终端上,假设该档案有更新 ...
- iOS 弹幕制作
离职的最后一天,在公司学习下弹幕的制作.基于OC. 主要思路: 1.首先建一个弹幕类BulletView,基于UIView,然后在该类上写个UIlabel,用于放置弹幕文字,然后前端放置一个UIIma ...
- Flex布局-项目的属性
Flex项目有以下6个属性: order flex-grow flex-shrink flex-basis flex align-self order属性定义项目的排列顺序.数值越小,排列越靠前,默认 ...
- SQL-触发器-011
什么事触发器? 触发器是一种特殊的存储过程,当表中的数据发生改变时触发器自动生效: 触发器无法通过名称调用,也不允许设置参数. 触发器的类型: DML触发器(数据操作语言触发器-insert/upda ...