# -*- 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自动化-元素定位的更多相关文章

  1. selenium+python自动化元素定位

    最近学习自动化测试,终于初步学习完成,需要进行博客日志总结,加深巩固自己的知识. 元素的八种定位方式 1.id 以百度为例子 我们在python输入的元素定位语法:bs.find_element_by ...

  2. selenium+python自动化-元素定位

    自动化只要掌握四步操作:获取元素,操作元素,获取返回结果,断言(返回结果与期望结果是否一致),最后自动出测试报告. 本篇主要讲几种基本的元素定位方法元素定位在这四个环节中是至关重要的,如果说按学习精力 ...

  3. Appium + Python自动化 - 元素定位uiautomatorviewer

    元素定位主要介绍如何使用uiautiomatorviewer,通过定位到页面上的元素,然后进行相应的点击等操作.uiautiomatorviewer是android-sdk自带的一个元素定位工具,非常 ...

  4. Appium+python自动化-元素定位uiautomatorviewer的使用

    前言 环境搭建好了,下一步元素定位,元素定位本篇主要介绍如何使用uiautomatorviewer,通过定位到页面上的元素,然后进行相应的点击等操作. uiautomatorviewer是androi ...

  5. web页面元素定位

    所有web网页中有8种元素定位方式 靠单一的特征找元素:6种(id,class_name,tag_name,name,link_text(2))组合各种特征和关系来找元素:2种(xpath,css) ...

  6. 【Python web自动化】之读取配置文件参数,利用cookie返回值进行跳过验证码进行登录操作

    当进行Python的Web自动化时,会涉及到验证码问题,该如何跳过执行呢,下面请看代码: 1.首先新建配置文件*.ini格式 config.ini [db] #基础地址: baseurl = http ...

  7. python+selenium遇到元素定位不到的问题,顺便记录一下自己这次的错误(报错selenium.common.exceptions.NoSuchElementException)

    今天在写selenium一个发送邮件脚本时,遇到一些没有找到页面元素的错误.经过自己反复调试,找原因百度,终于解决了.简单总结一下吧,原因有以下几点: 一:Frame控件嵌套,.Frame/Ifram ...

  8. app自动化 - 元素定位不到?别慌,3大工具帮你搞定!

    在日常的android app自动化测试工作当中,很多朋友在元素定位时,会遇到以下类似的报错: 然后会来问,这是啥情况? 一般情况下,都会送上以下亲切的关怀: 1)adb能识别到设备吗? 2)设备有被 ...

  9. APPIUM-Android自动化元素定位方式

    一.常用元素定位方法 appium从selenium中继承了所有的元素定位方法, 并且增加了一些自己的元素定位方式,下方截图分别为selenium和MobileBy包源码: 但是从继承selenium ...

  10. 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 ...

随机推荐

  1. python中字符串格式化

    username='小黑'age=18high=1.88s2='欢迎%s,年龄是%d,身高是%.2f'%(username,age,high)#%s是通用的,%d就必须传整数,%f就必须是小数,想保留 ...

  2. Forth词典条目结构

    body, table{font-family: 微软雅黑} table{border-collapse: collapse; border: solid gray; border-width: 2p ...

  3. JVM Optimization

    架构图 基本概念说明 堆(heap):数据存储,对象实例:空间往上增长,线程共享区:大小可通过-Xmx和-Xms配置 新生代(Young Generation):划分为Eden Space和两个Sur ...

  4. HTML5:表格相关标记及其属性

    表格相关标记及其属性 <table>:表格,包括以下属性 属性 说明 width 宽度(有像素和百分比两种表示方法) height 高度(有像素和百分比两种表示方法) border 边框粗 ...

  5. python爬虫挂代理

    以下是GET的方法,使用的代理接口网站是 http://www.xicidaili.com/nn/ #-*- coding:utf-8 -*- from bs4 import BeautifulSou ...

  6. 网易2018校招内推编程题-堆棋子-C++实现

    链接:https://www.nowcoder.com/questionTerminal/27f3672f17f94a289f3de86b69f8a25b来源:牛客网 [编程题]堆棋子 热度指数:14 ...

  7. 分布式队列celery 异步----Django框架中的使用

    仅仅是个人学习的过程,发现有问题欢迎留言 一.celery 介绍 celery是一种功能完备的即插即用的任务对列 celery适用异步处理问题,比如上传邮件.上传文件.图像处理等比较耗时的事情 异步执 ...

  8. 1159 Palindrome

    Palindrome Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 68562   Accepted: 23869 Desc ...

  9. Js 基本类型和引用类型

    一个变量可以存放两种类型的值,基本类型的值(primitive values)和引用类型的值(reference values). ES6 引入了一种新的原始数据类型 Symbol,表示独一无二的值. ...

  10. Js/如何操作div下面的span元素或者是img之类的标签元素

    $("div[name='MatTypeName']").click(function (e) { $("div[name='MatTypeName']").e ...