WebDriver API元素的定位

一、以下截图为用FireBug定位的用火狐(Firefox)浏览器打开的百度首页,下面所讲述的八种定位方法,就是以该截图中的百度输入框为例子。

①、FireBug是Firefox浏览器下的开发类插件,通过该插件可以查看HTML、CSS、Javascript控制台、网络状况监视器、Cookies,具体内容如下面截图中的工具栏。

通过它可以方便的查看页面上的元素,根据元素路径或是标签或是属性进行定位。

FireBug安装方式:Firefox浏览器的菜单栏中选中tools(工具)-->add-ons Manager(添加组件),搜索FireBug;进行安装重启,然后在工具栏中看到Firebug的按钮。

②、FirePath是FireBug插件扩展的一个工具,用来编辑、检查和生成的XPath表达式、CSS选择器。通过XPath和CSS可快速定位页面上的元素。如下图所示:

二、首先,我们一起来分析一下 下面的这几行代码

<input id="kw" class="s_ipt" autocomplete="off" maxlength="255" value="" name="wd">

①其标签(tag)名为input;

②里面有多个属性,包括id、class、name、value

<a class="mnav" href="http://news.baidu.com">新闻</a>

③标签对<a></a>之间有文本(text)数据

三、WebDriver的八种元素定位方法:

1、通过id属性定位百度的输入框  find_element_by_id("kw")

id在HTML文档中必须是唯一的,可以想象成学生在学校的学号,公民的身份证号。

2、通过name属性定位百度的输入框 find_element_by_name("wd")

3、通过class属性定位百度的输入框  find_element_by_class("s_ipt")

4、通过tag属性定位  find_element_by_tag_name("input")

5、通过link定位(既通过标签对之间的文本信息进行定位)   find_element_by_link_text("新闻")

6、通过partial link定位,它是对link定位的一种补充

例,代码如下:<a class="mnav" href="http://news.baidu.com">这是今天的当日新闻</a>

find_element_by_link_text("当日新闻")

7、通过XPath定位

①绝对路径定位(很不推荐该种定位方法,若页面样式稍微有点变化,元素就很容易找不到)

通过该种方法定位百度输入框 find_element_by_xpath(“/html/body/div/div/div/div/div/form/span/input”)

②通过标签(tag)名字和元素属性值定位

定位百度输入框  find_element_by_xpath(“//input[@id=‘kw‘]”) 或是 find_element_by_xpath("//*[id=‘kw‘]")

8、CSS定位

①通过class属性来定位百度输入框 find_element_by_css_selector(".s_ipt")     注:"."表示class属性

②通过id属性来定位百度输入框      find_element_by_css_selector("#kw")       注:"#"表示id属性

③通过标签名(tag)来定位             find_element_by_css_selector("input")      注:用标签名(tag)定位元素不需要任何符号标识

标签名重复的概率很大,通过该种方式很难直接找到想要的元素

④通过父子关系定位    父亲元素的标签名为form,查找它的所有标签名为input的子元素:

find_element_by_css_selector("form>input")              注:">"代表父子关系

⑤通过属性定位  find_element_by_css_selector("[type=‘submit‘]")

⑥通过组合定位  定位百度输入框 find_element_by_css_selector("form.fm>span>input.s_ipt")

或是find_element_by_css_selector("form#form>span>input#kw")

若文中内容有误,希望大家指正,谢谢。

时间: 2024-11-09 03:21:05

WebDriver API元素的定位的相关文章

WebDriver API 元素定位(一)

内容参考"虫师"的书籍,有兴趣的可浏览虫师博客:https://home.cnblogs.com/u/fnng/ 基本元素定位 id 定位 name 定位 class 定位 tag 定位 link 定位 partial linkd 定位 xpath 定位 css 定位 by 定位 id 定位 html规定id属性在html文档中必须是唯一的,具有很强的唯一性,webdriver可以通过查找id属性来查找元素: 表达式:find_element_by_id("***"

WebDriver API 元素定位(三)

将元素滚定到可见区域 iframe切换 将元素滚定到可见区域 web页面不能一次显示全部全部显示,需要借助滚定来查看相应的显示:selenium进行操作时,需要在可视范围内进行操作, 就需要将特定的元素滚动到可视范围进行操作,可以借助"execute_script("arguments[0].scrollIntoView();", target)"'来滚动页面. ① driver.execute_script("arguments[0].scrollInt

WebDriver API --8种定位方式

webdriver 提供了一系列的元素定位方法,常用的有一下8种方式: 1)id 2)name 3)class name 4)tag name 5)link text                通常用在超链接上 6)partial link text     通常用在超链接上 7)xpath                   通用方式 8)css selector xpath定位 如何这个标签本身没有属性,找父亲→爷爷 文本值定位 当标签属性很少,不足唯一区别元素时,但是标签中间存在唯一的

selenuim webDriver API 16种定位方式

错误截图: 这是由于html页面嵌套多个iframe导致的 解决办法:操作右侧的鼠标滚轮   滚动到上面就可以了 #操作鼠标滚轮 0,0表示最上面 js = 'window.scrollTo(0,0)' driver.execute_script(js) import time time.sleep(2) 原文地址:https://www.cnblogs.com/wyhv5/p/9723061.html

Webdriver API(元素定位与操作)

Webdriver提供了8种元素定位方法:id.name.class name.tag name.link text.partial link text.xpath.css selector 一.以上8种元素定位,Webdriver提供两套写法 1. 用By定位元素:通过By来声明定位的方法,需引入By模块 find_element(By.ID,"kw") find_element(By.NAME,"wd") 2. 直接定位 find_element_by_id(&

【Selenium WebDriver】元素定位函数 FindElement

定位Web页面上的元素,用FindElement函数,它可以根据元素的不同属性来快速定位.具体的属性如下: 例子: HTML页面文件: 1 <html xmlns="http://www.w3.org/1999/xhtml" lang="en-us"> 2 <head> 3 <body> 4 <form name="loginForm"> 5 <label for="username

转:python webdriver API 之定位 frame 中的对象

在 web 应用中经常会出现 frame 嵌套的应用,假设页面上有 A.B 两个 frame,其中 B 在 A 内,那么定位 B 中的内容则需要先到 A,然后再到 B.switch_to_frame 方法可以把当前定位的主体切换了 frame 里.怎么理解这句话呢?我们可以从 frame的实质去理解.frame 中实际上是嵌入了另一个页面,而 webdriver 每次只能在一个页面识别,因此才需要用 switch_to.frame 方法去获取 frame 中嵌入的页面,对那个页面里的元素进行定位

Selenium2+Python:Webdriver API速记手册

由于web自动化常常需要控制浏览器行为和操作页面元素,相关函数又比较多,于是再此记下一份Webdriver API查阅文档以备不时之需. 参考:虫师<Selenium2自动化测试实战>,和http://selenium-python.readthedocs.io/api.html 1 #coding=utf-8 2 from selenium import webdriver 3 driver=webdriver.Firefox() 4 driver.get('http://www.baidu

selenium之WebDriver API

自动化只要掌握四步操作:获取元素,操作元素,获取返回结果,断言(返回结果与期望结果是否一致),最后自动出测试报告,元素定位在这四个环节中是至关重要的,如果说按学习精力分配的话,元素定位占70%:操作元素10%,获取返回结果10%:断言10%.如果一个页面上的元素不能被定位到,那后面的操作就无法继续了.而WebDriver 属于Selenium体系设计出来操作浏览器的一套API,它支持多种语言,Selenium WebDriver只是python的一个第三方框架,也就是说是一个实现web自动化的第