Python自动化学习--元素定位
from selenium import webdriver
import time driver = webdriver.Chrome()
driver.get("https://www.baidu.com/index.php?tn=25017023_6_pg&ssl_s=1&ssl_c=ssl1_16d7f66ac98")
'''
# 元素定位之 id 定位
driver.find_element_by_id("kw").send_keys("华为")
driver.find_element_by_id("su").click()
'''
'''
#元素定位之 class name 定位
driver.find_element_by_class_name("s_ipt").send_keys("荣耀")
driver.find_element_by_id("su").click()
'''
'''
#元素定位之 tag 定位
driver.find_element_by_tag_name("input").send_keys("linux")
driver.find_element_by_id("su").click()
'''
'''
#元素定位之 link text 定位
driver.find_element_by_link_text("新闻").click()
time.sleep(3)
''' """
#元素定位之 partial link 定位 (类似于模糊定位)
driver.find_element_by_partial_link_text("hao").click()
time.sleep(3)
"""
'''
#元素定位之 XPath 定位 绝对路径定位
driver.find_element_by_xpath('//*[@id="kw"]').send_keys("国庆盛典")
driver.find_element_by_xpath('//*[@id="su"]').click()
time.sleep(3)
'''
'''
#元素定位之 XPath 定位 元素属性定位
driver.find_element_by_xpath('//input[@id="kw"]').send_keys("小米官网")
driver.find_element_by_xpath('//input[@id="su"]').click()
time.sleep(3)
'''
'''
#元素定位之 XPath 元素属性与层级结合定位
driver.find_element_by_xpath('//span[@class="bg s_ipt_wr quickdelete-wrap"]/input').send_keys("裤子")
time.sleep(2)
'''
'''
#元素定位之 XPath 逻辑运算符定位
driver.find_element_by_xpath("//*[@id='kw' and @class='s_ipt']").send_keys("裤子")
time.sleep(2)
'''
'''
#元素定位之 XPath contains 方法
driver.find_element_by_xpath("//span[contains(@class,'s_ipt_wr')]/input").send_keys("裤子")
time.sleep(2)
'''
'''
#元素定位之 XPath text() 和 contains 配合使用,实现link text 定位的效果
driver.find_element_by_xpath("//a[contains(text(),'hao')]").click()
time.sleep(2)
'''
'''
#CSS 定位 通过 class 选择器定位 写法:.class
driver.find_element_by_css_selector(".s_ipt").send_keys("裤子")
time.sleep(2)
'''
'''
#CSS 定位 通过 id 选择器定位 写法:#id
driver.find_element_by_css_selector("#kw").send_keys("裤子")
time.sleep(2)
'''
'''
#CSS 定位 通过标签层级关系定位 写法:element > element
driver.find_element_by_css_selector("span > input").send_keys("裤子")
time.sleep(2)
'''
'''
#CSS 定位 通过属性定位
#driver.find_element_by_css_selector("[autocomplete=off]").send_keys('裤子')
driver.find_element_by_css_selector("[name='wd']").send_keys('裤子')
driver.find_element_by_css_selector("[type='submit']").click()
time.sleep(2)
'''
'''
#CSS 定位 组合定位
driver.find_element_by_css_selector("form.fm > span > input.s_ipt").send_keys("裤子")
driver.find_element_by_css_selector("form#form > span > [type='submit']").click()
time.sleep(2)
''' '''
#By方式的 8 种定位方式,写法差不多,只是需要将By方式导入才能使用
from selenium.webdriver.common.by import By
driver.find_element(By.ID,"kw").send_keys("裤子")
driver.find_element(By.NAME,"wd").send_keys("裤子")
driver.find_element(By.CLASS_NAME,"s_ipt").send_keys("裤子")
driver.find_element(By.TAG_NAME,"input").send_keys("裤子")
driver.find_element(By.LINK_TEXT,"新闻").click()
driver.find_element(By.PARTIAL_LINK_TEXT,"hao").click()
driver.find_element(By.XPATH,"//*[@class='bg s_btn']")
driver.find_element(By.CSS_SELECTOR,"span.bg s_btn_wr > input#su")
'''
time.sleep(2) driver.quit()
Python自动化学习--元素定位的更多相关文章
- selenium+python自动化之元素定位
自动化按步骤拆分的话,可以分为四步操作:定位元素,操作元素,获取返回结果,断言(返回结果与期望结果是否一致),最后自动出测试报告.本篇接下来讲基本的八种元素定位方法.说的通俗一点,就是教大家找对象. ...
- Appium+python自动化12-appium元素定位
前言 appium定位app上的元素,可以通过id,name.class这些属性定位到 一.id定位 1.appium的id属性也就是通过UI Automator工具查看的resource-id属性
- Appium+python自动化12-appium元素定位【转载】
前言 appium定位app上的元素,可以通过id,name.class这些属性定位到 一.id定位 1.appium的id属性也就是通过UI Automator工具查看的resource-id属性
- Appium+python自动化-appium元素定位
前言 appium定位app上的元素,可以通过id,name.class这些属性定位到 一.id定位 1.appium的id属性也就是通过UI Automator工具查看的resource-id属性
- appium+python自动化50-生成定位对象模板templet(jinja2)
前言 每次自己写pageobject定位元素对象太繁琐,格式都差不多,只是换个定位方法,这种就可以才有模板的方式,批量生成pageobject定位元素对象的模板 python里面生成模板有两个模块可以 ...
- appium+python自动化49-yaml管理定位元素
前言 如何高效管理定位元素,这个是很有学问的问题,也是面试必问的[以下纯属个人观点,勿喷!]. 有的人用xml管理页面定位元素,这种逼格略高,但是小编认为学习成本大,贼麻烦. 有的人提到用excel管 ...
- python ui自动化之元素定位和常用操作
做ui自动化的最基础的就是页面元素定位了,如果连页面元素都定位不到,自动化从何谈起呢?接下来我们就看看页面元素定位的方法吧!(这里就用百度页面来进行演示) 一.最通用的几种定位方式: 1.通过id定位 ...
- Selenium with Python 003 - 页面元素定位
WebUI自动化,首先需要定位页面中待操作的元素,然后进行各种事件操作,这里我们首先介绍Selenium Python 如何定位页面元素,WebDriver 提供了一系列的方法. 定位单个页面元素(返 ...
- Selenium2+Python自动化学习笔记(第1天)
参考[http://blog.csdn.net/henni_719/article/details/51096531]大神写的笔记,多谢大神共享. 哈哈,今天又找到一位大神写的Selenium2+Py ...
随机推荐
- insert和insertSelective区别
两者的区别在于如果选择insert 那么所有的字段都会添加一遍即使没有值 <insert id="insert" parameterType="com.ego.po ...
- 在docker容器中调用docker命令
宿主容器均为CentOS7.6.1810 docker run -it --rm \ -v /usr/bin/docker:/usr/bin/docker \ -v /var/run/docker.s ...
- association实现懒加载分段级联查询
这里讲的是人员和部门进行级联分布查询 1.首先在mybatis-config.xml里进行配置 <settings> <!--显示的指定每个我们需要更改的配置的值,即使他是默认的.防 ...
- zay大爷的神仙题目 D1T2-腐草为萤
题面如下 依照旧例放外链 [题目背景] 纤弱的淤泥中妖冶颓废在季夏第三月最幼嫩的新叶连凋零都不屑何必生离死别——银临<腐草为萤> [问题描述] 扶苏给了你一棵树,这棵树上长满了幼嫩的新叶, ...
- docker镜像和加速
首先,需要明确一个问题:Mirror 与 Private Registry 有什么区别? Private Registry 是开发者或者企业自建的镜像存储库,通常用来保存企业内部的 Docker 镜像 ...
- script标签defer与async的区别
总结: async 会在文件下载完毕后立即执行 会阻止html parser defer 会下载完以后等html parser结束后执行,保证顺序
- Monkey测试:启动adb shell失败
1.在dos环境下输入adb shell 2.遇到adb server version doesn't match this client:killing错误 如: 3.在遇到如上问题时,输入adb ...
- application.events 识别组合键 参考。
https://blog.csdn.net/chinayu2007/article/details/43761277 在窗体上放上ApplicationEvents控件,在OnMessage消息中加入 ...
- CentOS安Elasticsearch
工作中有需求用到es做数据分析和日志搜索的,整理记录一下安装部署过程.ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful we ...
- WebMvcConfigurerAdapter详解和过时后的替代方案
一.什么是WebMvcConfigurerAdapter Spring内部的一种配置方式采用JavaBean的形式来代替传统的xml配置文件形式进行针对框架个性化定制 二.WebMvcConfigur ...