如何定位元素

以定位百度输入框为例:

<form id="form" name="f" action="/s" class="fm">
      <span class="bg s_ipt_wr quickdelete-wrap">
           <input id="kw" name="wd" class="s_ipt" value="" maxlength="255" autocomplete="off">
</form>

根据ID定位:find_element_by_id(‘kw‘)

根据name定位:find_element_by_name(‘wd‘)

根据class定位:find_element_by_class_name(‘s_ipt‘)

根据tag定位:find_element_by_tag_name(‘input‘)

实际应用中比较少使用tag定位一个元素,一般使用tag来定位一组元素

根据tag定位一组元素:find_elements_by_tag_name(‘input‘)

from selenium import webdriver

dr = webdriver.Firefox()
dr.get("https://www.baidu.com")

inputs = dr.find_elements_by_tag_name(‘input‘)
for i in inputs:
    if i.get_attribute(‘id‘) == "kw":
        i.send_keys(‘selenium‘)

根据文本链接定位:find_element_by_link_text("新闻")

使用到中文的时候需要在开头声明# -*- coding=utf-8 -*-  或者  #coding=utf-8

根据部分文本链接定位:find_element_by_partial_link_text("新")

根据xpath定位:find_element_by_xpath(’input[@id="kw"]‘)

定位除了id name class以外的唯一元素

find_element_by_xpath(‘//input[@maxlength="255"]‘)

根据路径来定位

find_element_by_xpath("//form[@id=‘form‘ and @class=‘fm‘]/span/input")

根据绝对路径来定位,但是路径可能改变或元素较深的情况下不推荐

find_element_by_xpath("/html/body/div/div[2]/div/form/span/input")

根据css定位:

css选择器的常用语法
选择器 描述
.class class选择器
#id id选择器
* 选择所有元素
element 选择某个元素
element1>element2 选择父元素为1元素的所有2元素
element1+element2 选择紧接着1元素后面的所有2元素
[artibute=value] 选择target等于某个值的所有字

e.g:

find_element_by_css_selector(‘.s_ipt‘)

find_element_by_css_selector(‘#kw‘)

find_element_by_css_selector(‘form.fm > span > input#kw‘)

find_element_by_css_selector(‘input[maxlength="255"]‘)

原文地址:https://www.cnblogs.com/hlbzzt/p/9891050.html

时间: 2024-10-12 08:44:36

如何定位元素的相关文章

使定位元素居中的4种方法例举

例子: 创建两个div,定位父级'box'  和   定位元素'sun'.本文要做的是 'sun' 要在 'box' 中居中显示, 该怎么做呢? 定位前效果图: 定位元素居中后的效果图: HTML代码: <!--定位元素父级--> <div id="box"> <!--定位元素--> <div id="sun"></div> </div> 样式代码: <style type="t

WebDriver定位元素方法

如果把页面上的元素看作人的话,在现实世界如何找到某人呢?方法有三: 一.通过人本身的属性,例如他的姓名,手机号,身份证号,性别,这些可区别他人的属性.在web页面上的元素也有这些属性,例如,id.name.class name.tag name等. 二.在找查某人的时候可以通过位置属性,例如,x国.x市.x路.x号.Xpath和CSS就提供了这种以标签名为层级关系的定位方式. 三.可以借助相关他人的属性来找到某人,例如,我没有小明的联系方式,但我有他爸爸的手机号,那么通过他爸爸手机号也可以找到小

定位元素

WebDriver 属于 Selenium 体系中设计出来python操作浏览器的一套 API. webdriver 提供8种定位元素的方法: id name class name tag name link text partial link text xpath css selector Python 语言中对应的定位方法如下: find_element_by_id() find_element_by_name() find_element_by_class_name() find_elem

使用findElement方法定位元素

selenium WebDriver定位元素是通过findElement()和findElements()方法. findElement()方法返回一个基于指定查询条件的WebElement对象或是抛出一个没有找到符合条件元素的异常. findElements()方法会返回匹配指定查询条件的webElements对象的集合,如果没有找到则返回空. 查询方法会将By实例作为参数传入.Selenium WebDriver提供了By类来支持各种查询策略. 策略: 方法 By  ID   driver.

定位元素锦集

项目需要,对主要流程进行脚本自动化测试.在编写脚本的过程中,碰上一些特殊的元素,难以定位.在此,做个记录,方便日后总结. 1.定位购物车中指定商品的数量 原则上每个商品都对应一个数量控件,如果要想获取指定商品的数量,必须定位到指定商品的block,再定位该block的数量控件. 有个注意的地方就是,该block必须同时包含该商品的标识元素与目标定位元素. amount: {    get: function () {        var result = browser.element("p=

CSS 定位元素之 relative

1. relative 和 absolute relative 会限制 absolute. absolute 会根据 父级的的定位元素来定位. 2. overflow 和 absolue 当overflow碰到 absolute的时候 overflow会失效 如果要overflow有效 必须使用relative 和 fixed.   3. relative 和 层级 z-index 当使用relative的时候 自身的层级并不能决定你 的层级位置 而是要看relative的层级 relative

selenium2.0第一部分:定位元素

Selenium WebDriver提供了先进的技术定位网页上的元素,Selenium丰富的API提供了多种定位元素的策略,例如如姓名.XPath ID.CSS选择器等等,也能自定义定位方法来定位元素 一.通过fidElement方法定位元素 WebDriver and WebElement class.提供findElement()和findElements()方法来定位元素 findElement()方法会通过特殊的索引返回web元素的信息,或者抛出异常(没有找到匹配的元素) findEle

隐藏元素、浮动元素、定位元素

<html> <head> <meta charset="utf-8"> <title>隐藏元素.浮动元素.定位元素</title> <style> p{ width:300px; background:pink; } #column{ background:pink; width:33%; float:left; border-top:1px solid white; border-left:2px solid

Appium学习路—Android定位元素与操作

一.常用识别元素的工具 uiautomator:Android SDK自带的一个工具,在tools目录下 monitor:Android SDK自带的一个工具,在tools目录下 Appium Inspector:Appium自带的一个功能,只有mac下可以使用该功能 下面是用monitor抓取到的页面元素 下面使用Appium Inspector定位的元素 二.元素定位   1.格式:find_element_by_定位方式(value) 通过id定位 (取resource-id的值): dr

webdriver中定位元素,报无法找到元素的问题

webdriver中定位元素,报无法找到元素的问题时,需要查看以下几点: 1 用火狐的firebug插件定位元素,确保这个元素的定位正确: 2 在火狐的firebug插件的,在html页签中输入frame或者iframe去查看这个元素所在的frame或iframe是什么: 写如下语句: WebElement iframe = driver.findElement(By    .xpath("//*[@id='ContentFrame']"));  driver.switchTo().f