一、六种定位方式

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

<input id="kw" class="s_ipt" name="wd" value="" maxlength="255" autocomplete="off">
1)简单定位百度输入框

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值方法;

比如定位元素是find_element_by_css_selector("div>span");那么获取值就是find_element_by_css_selector("div>span").value

【虫师Python】第二讲:元素定位的更多相关文章

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

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

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

    自动化按步骤拆分的话,可以分为四步操作:定位元素,操作元素,获取返回结果,断言(返回结果与期望结果是否一致),最后自动出测试报告.本篇接下来讲基本的八种元素定位方法.说的通俗一点,就是教大家找对象. ...

  3. Appium Python 五:元素定位

    总结 单个元素定位: driver.find_element_by_accessibility_id(id) driver.find_element_by_android_uiautomator(ui ...

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

  5. Python自动化学习--元素定位

    from selenium import webdriver import time driver = webdriver.Chrome() driver.get("https://www. ...

  6. Appium+python自动化12-appium元素定位

    前言 appium定位app上的元素,可以通过id,name.class这些属性定位到 一.id定位 1.appium的id属性也就是通过UI Automator工具查看的resource-id属性

  7. Selenium with Python 003 - 页面元素定位

    WebUI自动化,首先需要定位页面中待操作的元素,然后进行各种事件操作,这里我们首先介绍Selenium Python 如何定位页面元素,WebDriver 提供了一系列的方法. 定位单个页面元素(返 ...

  8. python之selenium元素定位方法

    前提: 大家好,今天我们来学习一下selenium,今天主要讲解selenium定位元素的方法,希望对大家有所帮助! 内容: 一,selenium定位元素 selenium提供了8种方法: 1.id ...

  9. Appium+python自动化12-appium元素定位【转载】

    前言 appium定位app上的元素,可以通过id,name.class这些属性定位到 一.id定位 1.appium的id属性也就是通过UI Automator工具查看的resource-id属性

  10. 【Python】Selenium元素定位错误之解决办法

    当使用class定位元素时发现报错: 错误信息:selenium.common.exceptions.InvalidSelectorException: Message: Compound class ...

随机推荐

  1. 国内首款 FPGA 云服务器,性能是通用 CPU 服务器 30 倍以上

    版权声明:本文由薛梁原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/628340001485134638 来源:腾云阁 ht ...

  2. Android 1.6 PackageParser.java 源码分析

    文件目录: android-1.6_r2\frameworks\base\core\java\android\content\pm\PackageParser.java # PackageParser ...

  3. 有关xml中的xmlns

    1. xmlns "xmlns"是XHTML namespace的缩写,叫做"名字空间"声明.名字空间是什么作用呢?我的理解是:由于xml允许你自己定义自己的标 ...

  4. jpa中时间戳格式应该用哪种类型

    遇到个bug,数据库时间存储用了datetime,但是下面的java jpa代码,查询回来,却只有日期. String innerSql = getInnerQuery(departmentId, k ...

  5. Windows NTLM Hash和Hash传递、Key传递攻击

    Hash(Key) 获取 工具: Mimikatz 用法: .\mimikatz.exe privilege::debug #查看权限 sekurlsa::logonpasswords #获取hash ...

  6. vue 项目要使用的库

    1.Stylus是一个CSS预处理器. npm install stylus --save-dev npm install stylus-loader --save-dev 使用 <style ...

  7. cheerio ==> node中的jquery

    三.cheerio ==> node中的jquery  https://www.npmjs.com/package/cheerio $ npm install cheerio -- save 1 ...

  8. Web Uploader在低版本IE下无法显示Flash的一种情况

    用户反馈在IE 8下无法正常显示Web Uploader控件,并已安装了Flash插件.调试发现在内部抛出了Runtime Error的错误,关键代码如下: Runtime.create = func ...

  9. 【CF845F】Guards In The Storehouse 插头DP

    [CF845F]Guards In The Storehouse 题意:一个n*m的房间,每个格子要么是障碍要么是空地.对于每个空地你可以选择放或者不放守卫.一个守卫能保护到的位置是:他右面的一行空地 ...

  10. H5填坑笔记--持续更新

    最近一直在做移动端的页面,发现很多的坑,这里做一下总结,填填坑…… css常见的问题(一) 一.iOS键盘首字母自动大写 IOS的机子,默认英文输入法状态下,首字母是自动大写的,有时候挺烦人的. 在i ...