selenium之元素的定位

   1、id定位:find_element_by_id(self, id_)

   通过唯一的id来定位

# coding : uft-8

from selenium import webdriverdriver = webdriver.Firefox()url = "https://baidu.com"driver.get(url)#打印一下title,确认我们打开的对不对print(driver.title)# 选中输入框,输入关键词“杭州天气”driver.find_element_by_id("kw").send_keys("杭州天气")# 选中按钮,触发点击事件driver.find_element_by_id("su").click()

2、name定位:find_element_by_name(self, name)通过name属性来定位,name属性在当前页面可以不是唯一的  
# coding utf-8from selenium import webdriver#拿到driverurl = "http://baidu.com"# 跳转网页driver = webdriver.Firefox()driver.get(url)# 打印titleprint(driver.title)# 选中输入框,输入“杭州天气”driver.find_element_by_name("wd").send_keys("杭州天气")# 选中按钮,触发点击事件driver.find_element_by_id("su").click()

3、class定位:元素的类名,find_element_by_class_name("class值")class有可能会存在多个相同的,不存在唯一性
driver.find_element_by_class_name("s_ipt").send_keys("杭州天气")

4、通过标签名去定位:find_element_by_tag_name("input")很少用,不能唯一确定,通常标签名用到的地方很多

用法:driver.find_element_by_tag_name("input")

5、超链接内容定位:find_element_by_link_text("天猫超市")

找唯一的标签去定位,可以用于点击退出、个人中心等等
# coding utf-8from selenium import webdriver# 导入sleep这个模块from time import sleep

# 打开淘宝首页url = "https://www.taobao.com/"driver = webdriver.Firefox()driver.get(url)# 睡眠时间10秒,看的效果明显点sleep(10)# 点击天猫超市标签,跳转到天猫超市driver.find_element_by_link_text("天猫超市").click()

6、超链接内容模糊定位,模糊匹配:find_element_by_partial_link_text(”超市“)
find_element_by_partial_link_text是对find_element_by_link_text的一种补充,当链接上的文本内容比较长的时候,可以取文本的一部分进行定位,当然这部分可以唯一地标识这个链接
用法:driver.find_element_by_partial_link_text("超市").click()

7、xpath定位:find_element_by_xpath(),xpath是XML路径语言,通过元素的路径来完成对元素的查找,HTML是XML的一种实现方式,在FriePath插件对应的xpath地址注:xpath语法:http://www.w3school.com.cn/xpath/xpath_syntax.asp其中“//”代表全部,即全文扫描;“/”代表相邻,“*”代表所有元素,“..”代表元素的父节点,“.”代表当前节点

绝对路径定位:从<html>标签开始依次往下进行查找相对路径:利用元素属性进行xpath定位技巧:通过firebug的拷贝css路径
用法:driver.find_element_by_xpath("/html/body/div[3]/div/ul[1]/li[3]/a").click()取路径的方法:a:找到要定位的元素,鼠标放在要定位的元素上b:鼠标右键,点击查看元素

c:鼠标移到查看器中定位到的地方,右键-复制,选择xpath,这样就把对应的绝对路径复制出来了
/html/body/div[3]/div/ul[1]/li[3]/a

8、CSS定位:find_element_by_css_selector()根据css属性定位,唯一性强,一般class是用.标记,ID是用#标记,定位方式比xpath快技巧:利用css选择器进行复制

用法:driver.find_element_by_css_selector(".nav-hd > li:nth-child(3) > a:nth-child(1)").click()


原文地址:https://www.cnblogs.com/zr603578280/p/9892917.html

时间: 2024-10-09 05:07:34

selenium之元素的定位的相关文章

selenium 动态元素的定位

对于有些元素每次点击都是动态的  即每次都是不一样的  对于这种元素我们可以采用与他相关的其他静态的元素定位 比如 iframe 这个元素的id是动态的 每次都在变化 第一种就是我们观察下 是整个都是变化的还是部分变化  部分变化我们可以采用不变的部分定位 整个都在变化的 只能利用其它不变的元素 例如  通过xpath来定位  drive.find...xpath("//iframe[starts-with(@x,'y')]")  x是不变的元素属性 y则是属性的内容  这里采用以什么

Selenium 特殊元素的定位与操作

Web页面有很多特殊的元素  无法使用基本的元素定位方式定位,下面介绍几个特殊的元素定位 1.alert框 alert框只有一个确认按钮 BrowserUtil.driver.findElement(By.id("abtn")).click(); Thread.sleep(3000); Alert alert = BrowserUtil.driver.switchTo().alert(); alert.accept(); //点击确认按钮 alert.dismiss();//弹框消失

selenium对元素定位和操作方法的封装

前面介绍了selenium对元素的定位方法和操作方法,但是因为这些方法用起来重复的次数比较多,所以我们在下面对他们进行一个封装 # -*- coding:UTF-8 -*- from selenium import webdriver import time class common(object): #新建对象就自动创建浏览器并且最大化窗口 def __init__(self): self.driver=webdriver.Chrome() self.driver.maximize_windo

Selenium Webdriver元素定位的八种常用方式

在使用selenium webdriver进行元素定位时,通常使用findElement或findElements方法结合By类返回的元素句柄来定位元素.其中By类的常用定位方式共八种,现分别介绍如下. 1. By.name() 假设我们要测试的页面源码如下: <button id="gbqfba" aria-label="Google Search" name="btnK" class="gbqfba"><

selenium中元素定位的常用方法

一.Selenium中元素定位共有八种 id name className tagName linkText partialLinkText xpath cssSelector 其中前六种都比较简单,通过id一般可以得到一个唯一的定位,其他五种要注意元素是否唯一,如果有多个,返回的是匹配的第一个元素.下面详细讲解一下xpath和cssSelector定位. 二.xpath定位 1.通过绝对路径定位 dr.findElement(By.xpath("/html/body/div[2]/div/di

selenium中的webdriver定位元素失败的常见原因

自动化测试中经常会出现无法定位元素的情况,报selenium.common.exceptions.NoSuchElementException错误 Frame/Iframe原因定位不到元素: 这个是最常见的原因,首先要理解下frame的实质,frame中实际上是嵌入了另一个页面,而webdriver每次只能在一个页面识别,因此需要先定位到相应的frame,对那个页面里的元素进行定位. 解决方案: 如果iframe有name或id的话,直接使用switch_to_frame("name值"

Selenium Webdriver元素定位的方式

Selenium Webdriver元素定位的方式 主要就是By类的 1.By.name() ## html代码如下: <button id="gbqfba" aria-label="Google Search" name="btnK" class="gbqfba"><span id="gbqfsa">Google Search</span></button>

Selenium Webdriver元素定位的八种常用方式(转载)

转自:http://www.cnblogs.com/qingchunjun/p/4208159.html 在使用selenium webdriver进行元素定位时,通常使用findElement或findElements方法结合By类返回的元素句柄来定位元素.其中By类的常用定位方式共八种,现分别介绍如下. 1. By.name() 假设我们要测试的页面源码如下: <button id="gbqfba" aria-label="Google Search" n

selenium之元素定位-css

CSS定位方式和XPATH定位方式基本相同,只是CSS定位表达式有其自己的格式.CSS定位方式拥有比XPATH定位速度快,且比XPATH稳定的特性.下面详细介绍CSS定位方式的使用方法 被测网页的HTML代码 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <style type="text/css"> input.spread { Font-SIZ