【虫师Python】第二讲:元素定位
一、六种定位方式
1.id
2.name
3.class name
4.tag name:定位标签
5.link text:定位一个链接,如果是中文,需要在代码文最前面加一句I话|:#coding=utf-8,同时还需要在中文前面加u,将中文转换为unicode,解码为utf-8,即可识别中文的文字
6.partial link text:定位链接,同时通过中文中的部分中文找到该元素
7.xpath(最常用)
8.css selector(最常用)
二、火狐浏览器
1.下载firebug(可以在浏览器添加插件种搜索安装),点击小虫子也可以打开前端调试页面。
【实例】以百度网页为例:http://www.baidu.com
find_element_by_id("kw1")
find_element_by_name("wd")
find_element_by_class_name("s_ipt")
find_element_by_tag_name("input")
1)较复杂定位百度输入框
a.xpath
find_element_by_xpath("/html/body/div[2]/div[1]/div/div[1]/div/form/span[1]/input").send_keys("selenium") //xpath中的内容可以通过火狐浏览器定位该元素右键选择“复制xpath”即可得到。其中dev[2]代表body下的第二个dev标签。
xpath中也可以写成相对路径,可以通过下图来编写判定其相对路径为:find_element_by_xpath("//form[@id='form']/span/input").send_keys("selenium")
find_element_by_xpath("//form[@id='form' and@name='f']/span/input").send_keys("selenium")
b.css_selector
browser.find_element_by_css_selector("#form>span>input").send_keys("selenium")
xpath同css之间相互之间有转换关系,详情看下图:
练习中的举例:
driver.find_element_by_xpath("//a[@fav-url='http://t10.baidu.com/it/u=42051159,1359918120&fm=58'and @class='cute sasa de mimi,momo'] ").click()
a标签下的fav-url属性和class属性共同确定一个元素。
c.弹出框中元素定位:
#定位“提交所有答案并结束”按钮,定位语句如下:
driver.find_element_by_css_selector("body>div>div>div>div>div>div>input:nth-child(1)").click()
查找一共有六个div才能定位到input的“提交所有答案并结束”按钮后可以通过console去验证是否真正通过以上路径能够定位到“提交所有答案并结束”按钮。如果能证明语句是正确的。
2)定位新闻
find_element_by_link_text(u"新闻") //需要在代码文最前面加一句I话|:#coding=utf-8
find_element_by_partial_link_text("胡")
3)获取某个 元素的value值方法;
【虫师Python】第二讲:元素定位的更多相关文章
- python+selenium遇到元素定位不到的问题,顺便记录一下自己这次的错误(报错selenium.common.exceptions.NoSuchElementException)
今天在写selenium一个发送邮件脚本时,遇到一些没有找到页面元素的错误.经过自己反复调试,找原因百度,终于解决了.简单总结一下吧,原因有以下几点: 一:Frame控件嵌套,.Frame/Ifram ...
- selenium+python自动化之元素定位
自动化按步骤拆分的话,可以分为四步操作:定位元素,操作元素,获取返回结果,断言(返回结果与期望结果是否一致),最后自动出测试报告.本篇接下来讲基本的八种元素定位方法.说的通俗一点,就是教大家找对象. ...
- Appium Python 五:元素定位
总结 单个元素定位: driver.find_element_by_accessibility_id(id) driver.find_element_by_android_uiautomator(ui ...
- 3 Python+Selenium的元素定位方法(id、class name、name、tag name)
[环境] Python3.6+selenium3.0.2+IE11+Win7 [定位方法] 1.通过ID定位 方法:find_element_by_id('xx') 2.通过name定位 方法:fin ...
- Python自动化学习--元素定位
from selenium import webdriver import time driver = webdriver.Chrome() driver.get("https://www. ...
- Appium+python自动化12-appium元素定位
前言 appium定位app上的元素,可以通过id,name.class这些属性定位到 一.id定位 1.appium的id属性也就是通过UI Automator工具查看的resource-id属性
- Selenium with Python 003 - 页面元素定位
WebUI自动化,首先需要定位页面中待操作的元素,然后进行各种事件操作,这里我们首先介绍Selenium Python 如何定位页面元素,WebDriver 提供了一系列的方法. 定位单个页面元素(返 ...
- python之selenium元素定位方法
前提: 大家好,今天我们来学习一下selenium,今天主要讲解selenium定位元素的方法,希望对大家有所帮助! 内容: 一,selenium定位元素 selenium提供了8种方法: 1.id ...
- Appium+python自动化12-appium元素定位【转载】
前言 appium定位app上的元素,可以通过id,name.class这些属性定位到 一.id定位 1.appium的id属性也就是通过UI Automator工具查看的resource-id属性
- 【Python】Selenium元素定位错误之解决办法
当使用class定位元素时发现报错: 错误信息:selenium.common.exceptions.InvalidSelectorException: Message: Compound class ...
随机推荐
- 开源项目:MMTweenAnimation
本文转载至 http://adad184.com/2015/04/14/opensource-mmtweenanimation/ 前言 MMTweenAnimation其实酝酿了有一段时间了 起因是对 ...
- Servlet基本用法(一)基本配置
一.前言 Java Servlet是一个基于Java技术的Web组件,运行在服务器端,由Servlet容器所管理,用于生成动态的内容.Servlet是平台独立的Java类,编写一个Servlet实际上 ...
- 重写MFC窗口上的关闭按钮事件(SDI, MDI, Dialog)
This piece of code demonstrate how to override WM_CLOSE event. 点击窗口关闭按钮,触发相关事件! 有时候,在MFC程序退出之前,我们通常会 ...
- .net webservices 代理类生成命令
wsdl.exe /l:cs /out:d:/WxPayment.cs http://localhost/WxPayment.asmx
- 【IE兼容问题】记一次Manifest因为jquery版本不同导致的兼容问题解决方案X-UA-Compatible
最近在调试一个jquery插件Manifest 测试过程中发现IE一直不能完全展示这个插件,只显示了一个textbox文本框 IE下的bug的效果图 其他浏览器正常的效果图 跟踪原因,IE下jquer ...
- JS方法 - 字符串处理函数封装汇总 (更新中...)
一.计算一段字符串的字节长度 字符串的charCodeAt()方法, 可返回字符串固定位置的字符的Unicode编码,这个返回值是0-65535之间的整数,如果值<=255时为英文,反之为中文. ...
- CSS学习之盒子模型
1. 前言 盒子模型,英文即box model.无论是div.span.还是a都是盒子. 但是,图片.表单元素一律看作是文本,它们并不是盒子.这个很好理解,比如说,一张图片里并不能放东西,它自己就是自 ...
- javascript解析器原理
浏览器在读取HTML文件的时候,只有当遇到<script>标签的时候,才会唤醒所谓的“JavaScript解析器”开始工作. JavaScript解析器工作步骤 1. “找一些东西”: v ...
- POJ 1117 Pairs of Integers
Pairs of Integers Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 4133 Accepted: 1062 Des ...
- C语言位操作初步
位操作允许程序员对单独的位进行操作,例如,早某些机器上,短整型占16位,位操作将每一位单独操作. 位操作允许程序员设置.清除.测试与其他的操作,这些操作如下表: 操作 含义 & 按位与 | 按 ...