前提:

大家好,今天我们来学习一下selenium,今天主要讲解selenium定位元素的方法,希望对大家有所帮助!

内容:

一,selenium定位元素

selenium提供了8种方法:

1.id

2.name

3.class name

4.tag name

5.link text

6.partial link text

7.xpath

8.css selector

这8种方法在python中写法为:

1.find_element_by_id()

2.find_element_by_name()

3.find_element_by_class_name()

4.find_element_by_tag_name()

5.find_element_by_link_text()

6.find_element_by_partial_link_text()

7.find_element_by_xpath()

8.find_element_by_css_selector()

二,元素的定位方法

我们以百度为例子,打开开发者模式,查看前端元素

我们的目的是要定位到灰色的那行

1.通过id

driver.find_element_by_id("kw")

2.通过name

driver.find_element_by_name("wd")

3.通过class name

driver.find_element_by_class_name("s_ipt")

4.通过tag name

driver.find_element_by_tag_name("input")

5.通过xpath

driver.find_element_by_xpath("//*[@id='kw']")

driver.find_element_by_xpath("//*[@name='kw']")

driver.find_element_by_xpath("//input[@class='s_ipt']")

driver.find_element_by_xpath("/html/body/form/span/input")

driver.find_element_by_xpath("//span[@class='soutu-btn']/input")

driver.find_element_by_xpath("//form[@id='form']/span/input")

driver.find_element_by_xpath("//input[@id='kw' and @name='wd']")

6.通过css selector

driver.find_element_by_css_selector("#kw")

driver.find_element_by_css_selector("[name=wd]")

driver.find_element_by_css_selector(".s_ipt")

driver.find_element_by_css_selector("html > body > form > span > input")

driver.find_element_by_css_selector("span.soutu-btn> input#kw")

driver.find_element_by_css_selector("form#form > span > input")

因为xpath,css selector比较难,可以去参考链接:

css选择器

xpath语法

python之selenium元素定位方法的更多相关文章

  1. selenium元素定位方法

    一.如何找到页面元素 Webdriver的findElement方法可以用来找到页面的某个元素,最常用的方法是用id和name查找.下面介绍几种比较常用的方法. 1.1By ID 假设页面写成这样:i ...

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

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

  3. selenium元素定位方法之轴定位

    一.轴运算名称 ancestor:祖先结点(包括父结点) parent:父结点 preceding:当前元素节点标签之前的所有结点(html页面先后顺序) preceding-sibling:当前元素 ...

  4. [python爬虫] Selenium常见元素定位方法和操作的学习介绍(转载)

    转载地址:[python爬虫] Selenium常见元素定位方法和操作的学习介绍 一. 定位元素方法 官网地址:http://selenium-python.readthedocs.org/locat ...

  5. python+selenium元素定位——8种方法

    定位元素,selenium提供了8中元素定位方法: (1)find_element_by_id() :html规定,id在html中必须是唯一的,有点类似于身份证号 (2)find_element_b ...

  6. python+selenium笔记(一):元素定位方法

    一.环境准备: 1.浏览器选择:Firefox 2.安装插件:Firebug和FirePath(设置>附加组件>搜索:输入插件名称>下载安装后重启浏览器) 3.安装完成后,页面右上角 ...

  7. python学习之——selenium元素定位

    web自动化测试按步骤拆分,可以分为四步操作:定位元素,操作元素,获取返回结果,断言(返回结果与期望结果是否一致),最后自动出测试报告. 其中定位元素尤为关键,此篇是使用webdriver通过页面各个 ...

  8. Selenium之WebDriver元素定位方法

    Selenium WebDriver 只是 Python 的一个第三方框架, 和 Djangoweb 开发框架属于一个性质. webdriver 提供了八种元素定位方法,python语言中也有对应的方 ...

  9. Selenium Web元素定位方法

    Selenium是用于Web应用测试的自动化测试框架,可以实现跨浏览器和跨平台的Web自动化测试.Selenium通过使用WebDriver API来控制web浏览器,每个浏览器都都有一个特定的Web ...

随机推荐

  1. CF827D Best Edge Weight[最小生成树+树剖/LCT/(可并堆/set启发式合并+倍增)]

    题意:一张图求每条边边权最多改成多少可以让所有MST都包含这条边. 这题还是要考察Kruskal的贪心过程. 先跑一棵MST出来.然后考虑每条边. 如果他是非树边,要让他Kruskal的时候被选入,必 ...

  2. dockerfile-maven plugin自动镜像制作并发布

    环境准备:win10+docker 1.打开hyper-v 2.下载最新版本docker:https://store.docker.com/editions/community/docker-ce-d ...

  3. Oracle中dual表的用途

    dual是一个虚拟表,用来构成select的语法规则,oracle保证dual里面永远只有一条记录.我们可以用它来做很多事情,如下: 1.查看当前用户,可以在 SQL Plus中执行下面语句 sele ...

  4. 嵌入式系统FreeRTOS — 互斥信号量

    互斥信号量可以在资源保护的时候很有帮助.用于控制在两个或多个任务间访问共享资源.任务1里面用互斥,那么任务2只能等任务1访问完再访问同一个变量. 比如全局变量double gADC_value[CH_ ...

  5. 设置pycharm环境下python内存

    有的时候在pycharm下的python需要加载很大的内存,那我们如何去修改pycharm的环境的内存呢?? 第一个栈内存,第二是堆内存.

  6. js实现OSS上传图片,STS临时授权访问OSS

    1. 引入aliyun-oss-sdk.min.js <script type="text/javascript" src="/static/js/common/a ...

  7. xgboost 特征重要性计算

    在XGBoost中提供了三种特征重要性的计算方法: ‘weight’ - the number of times a feature is used to split the data across ...

  8. php unicode转字符串

    <?php /** * @param string $str 需转换字符,这里为单个字符 * @return string */ function get_unicode($str) { $bi ...

  9. reduce()之js与python

    最近在自学python基础,发现很多js中的内置函数python中都存在,甚至比js更加简洁,下面说一下reduce()在js和python中的用法,做个对比便于记忆. reduce()简介: red ...

  10. 锁对象Lock-同步问题更完美的处理方式

    Lock是java.util.concurrent.locks包下的接口,Lock 实现提供了比使用synchronized 方法和语句可获得的更广泛的锁定操作,它能以更优雅的方式处理线程同步问题,我 ...