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 ...
随机推荐
- Linux SSH登录很慢的解决方法
一:UseDNS OpenSSH在用户登录的时候会验证IP,它根据用户的IP使用反向DNS找到主机名,再使用DNS找到IP地址,最后匹配一下登录的IP是否合法.如果客户机的IP没有域名,或者DNS服务 ...
- Vue解决同一页面跳转页面不更新
问题分析:路由之间的切换,其实就是组件之间的切换,不是真正的页面切换.这也会导致一个问题,就是引用相同组件的时候,会导致该组件无法更新. 方案一:使用 watch 进行监听 watch: { /* = ...
- Eclipse安装Activiti Designer插件
本人使用的是在线安装: 打开Eclipse -> Help -> Install New SoftWare-> Add 然后按照如下对话框输入: Name:Activiti BPMN ...
- 判断是不是微信浏览器和QQ内置浏览器
is_weixn() { let ua = navigator.userAgent.toLowerCase(); if (ua.match(/MicroMessenger/i) == "mi ...
- IO流技术
IO流常用基类 字节流的抽象基类:InputStream,OutputStream 字符流的抽象基类:Reader,Writer Writer类 子类:BufferedWriter,CharArray ...
- 认识:人工智能AI 机器学习 ML 深度学习DL
人工智能 人工智能(Artificial Intelligence),英文缩写为AI.它是研究.开发用于模拟.延伸和扩展人的智能的理论.方法.技术及应用系统的一门新的技术科学. 人工智能是对人的意识. ...
- Kali安装虚拟机遇到的问题
1.上官网下载了最新版的VMware 14.0版,安装的时候下一步下一步就是了. 2.最新版的官网激活码 FF590-2DX83-M81LZ-XDM7E-MKUT4 CG54H-D8D0H-H8DHY ...
- PythonStudy——Python 内置函数 Built-in function
内置方法:Python中声明每一个类系统都会加上一些默认内置方法,提供给系统调用该类的对象时使用.比如需要实例化一个对象时,需要调用该类的init方法:使用print去打印一个类时,其实调用的是str ...
- 聊聊Java反射
反射是Java最重要的特性.通过Java反射可以在运行时知道一个类的所有成员和方法,知道一个对象的类类型.成员和方法的所有信息,进而调用对象的方法或生成对象的代理或包装类. Java是面向对象语言,除 ...
- 一 Struts框架(下)
1 struts FORM 标签 与jstl标准标签库类似的,struts有专属标签库 form标签用于提交数据 修改addProduct.jsp <%@ page contentType=&q ...