3.8种元素定位

1.前8种常用的元素定位方法:

1.id定位:driver.find_element_by_id(" ")

2.Name定位:driver.find_element_by_name(" ")

3.Class定位:driver.find_element_by_class_name(" ")

4.Tag定位:driver.find_element_by_tag_name(" ")

5.Link定位:driver.find_element_by_link_text(" ")

6.Partial_link定位:driver.find_element_by_Partial_link_text(" ")

7.Xpath定位:driver.find_element_by_xpath(" ")

8.css定位:driver.find_element_by_css_selector(" ")

from selenium import webdriver
import time
driver = webdriver.Firefox()
driver.get(‘https://www.baidu.com/‘)
title = driver.title
print(title)

driver.find_element_by_id("kw").send_keys("python")    #通过id定位搜索框,用send_keys输入文本
driver.find_element_by_id("su").click()    #点击事件
time.sleep(3)

driver.find_element_by_link_text(u"百度首页").click()    #通过link属性定位, 加 u 的作用是把中文字符串转换成unicode 编码
driver.find_element_by_partial_link_text("ao123").click()   #partial_link是一种模糊匹配的方式,对于超长字符串截取其中一部分
driver.back()

driver.find_element_by_name("wd").send_keys("花儿爷")   #使用name属性定位
driver.find_element_by_id("su").click()
driver.back()
time.sleep(3)

driver.find_element_by_class_name("s_ipt").send_keys("苏宁易购")  #使用class属性定位
driver.find_element_by_id("su").submit()       #模拟键盘enter键
driver.back()
time.sleep(3)

#driver.find_element_by_tag_name("input").send_keys("python")  #通过tag标签定位,运行会报错,不建议使用

‘‘‘
#通过css定位方法
#1.通过元素的id、name、class这些属性定位
driver.find_element_by_css_selector("#kw").send_keys("python")        #css通过id定位
driver.find_element_by_css_selector(".s_ipt").send_keys(‘python‘)   # .号后面跟的是class属性, class="s_ipt"
driver.find_element_by_css_selector("[name=‘wd‘]").send_keys(‘python‘) # css通过name属性定位
driver.find_element_by_css_selector("[autocomplete=‘of‘]").send_keys(‘python‘)   #css通过autocomplete属性定位
driver.find_element_by_css_selector("[type=‘text‘]").send_keys(‘python‘)   #css通过type属性定位

#2.css层级
driver.find_element_by_css_selector("form#form>span>input").send_keys(‘python‘)
driver.find_element_by_css_selector("form.fm>span>input").send_keys(‘python‘)

3.css索引定位
driver.find_element_by_css_selector("select#nr>option:nth-child(1)").click()
‘‘‘

#driver.find_elements_by_xpath(".//*[@id=‘kw‘]").send_keys("python")   #通过路径定位
‘‘‘
#1.使用绝对路径xpath定位
dr.find_element_by_xpath("/html/body/div[3]/div[1]/div/div[1]/div/form/span[1]/input").send_keys(‘0‘)

# 2.使用相对路径的xpath定位
通过元素的id、name、class这些属性定位
driver.find_element_by_xpath("//*[@id=‘kw‘]").send_keys("python")
driver.find_element_by_xpath("//*[@name=‘wd‘]").send_keys("python")
driver.find_element_by_xpath("//*[@class=‘s_ipt‘]").send_keys("python")

#3.xpath层级,元素属性不明显时可以定位父元素
driver.find_element_by_xpath("//span[@id=‘s_kw_wrap‘]/input").send_keys("python")   #通过定位父元素来定位
driver.find_element_by_xpath("//form[@id=‘form]/span/input").send_keys("python")   #通过定位爷爷元素来定位

#4.xpath索引定位,元素兄弟一样,无法通过层级定位,指定索引
driver.find_element_by_xpath("//select[@id=‘nr‘]/option[1]").click  #索引值通过1算起的
driver.find_element_by_xpath("//select[@id=‘nr‘]/option[2]").click

 ‘‘‘

driver.quit()

后几种复数形式定位方法,定位到的是一组元素返回的是一个队列:

  1. id定位:driver.find_elements_by_id(" ")
  2. Name定位:driver.find_elements_by_name(" ")
  3. Class定位:driver.find_elements_by_class_name(" ")
  4. Tag定位:driver.find_elements_by_tag_name(" ")
  5. Link定位:driver.find_elements_by_link_text(" ")
  6. Partial_link定位:driver.find_elements_by_Partial_link_text(" ")
  7. Xpath定位:driver.find_elements_by_xpath(" ")
  8. css定位:driver.find_elements_by_css_selector(" ")

原文地址:https://www.cnblogs.com/huaerye/p/9325159.html

时间: 2024-10-05 23:25:17

3.8种元素定位的相关文章

Selenium2学习-009-WebUI自动化实战实例-007-Selenium 8种元素定位实战实例源代码(百度首页搜索录入框及登录链接)

此 文主要讲述用 Java 编写 Selenium 自动化测试脚本编写过程中,通过 ID.name.xpath.cssSelector.linkText.className.partialLinkText.tagName 的实战实例源代码演示 Selenium 元素定位的 8 种方法,源代码测试通过日期为:2015-01-26 00:18,请知悉.注意:其中通过 tagName 定位元素时,返回的是一个 WebElement 的数组,需要根据实际的测试需求对其进行进一步的处理. 希望能对初学 S

selenium自动化测试——常见的八种元素定位方法

selenium常用的八种元素定位方法 1.通过 id 定位:find_element_by_id() 2.通过 name 定位:find_element_by_name() 3.通过 tag 定位:find_element_by_tag_name() 4.通过 class 定位:find_element_by_class_name() 5.通过 css 定位:find_element_by_css_selector() 6.通过 link 定位:find_element_by_link_tex

selenium + Python (2) -- 常用8种元素定位

selenium常用的8种元素定位方式如下(代码可直接运行): # coding:utf-8 # 第一步导入需要的模块 from selenium import webdriver import time # 第二步打开浏览器 driver = webdriver.Firefox() # 第三步打开百度 driver.get("http://www.baidu.com") # 1. 操作浏览器对象-id driver.find_element_by_id("kw")

【Selenium 3+Java自动化(4)】-八种元素定位

1 package com.mypro.jase; 2 3 import org.openqa.selenium.By; 4 import org.openqa.selenium.WebDriver; 5 import org.openqa.selenium.WebElement; 6 7 public class FindElement { 8 WebDriver driver; 9 String url = "http://www.baidu.com"; 10 11 /** 12

Selenium2+python自动化02-八种元素定位(Firebug和Firepath)

前言    自动化只要掌握四步操作:获取元素,操作元素,获取返回结果,断言(返回结果与期望结果是否一致),最后自动出测试报告.本篇主要讲如何用firefox辅助工具进行元素定位.元素定位在这四个环节中是至关重要的,如果说按学习精力分配的话,元素定位占70%:操作元素10%,获取返回结果10%:断言10%.如果一个页面上的元素不能被定位到,那后面的操作就无法继续了.接下来就来讲webdriver提供的八种基本元素定位方法. 一.环境准备: 1.浏览器选择:Firefox 2.安装插件:Firebu

Selenium系列(一) - 8种元素定位方式的详细解读

安装Selenium和下载Driver 安装selenium pip3 install  selenium -i http://pypi.douban.com/simple --trusted-host pypi.douban.com 下载Driver 打开:http://npm.taobao.org/mirrors/chromedriver/ 找到自己Chrome对应的版本下载即可 访问百度的小Demo #!/usr/bin/env python # -*- coding: utf-8 -*-

Selenium-几种元素定位方式

#识别元素并操作#一般有如下几种方法,其中id最为常用.这里需要注意识别元素一定要用唯一id 1.find_element_by_id("value") #! /usr/bin/env python #coding=utf-8 from selenium import webdriver import time url = "http://www.baidu.com" driver = webdriver.Firefox() driver.get(url) time

一、八种元素定位方法

[Toc] <!--百度首页输入框的HTML代码--> <input id="kw" class="s_ipt" autocomplete="off" maxlength="255" value="" name="wd"> 1. id定位 通过find_element_by_id()来进行定位 import time from selenium import we

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(&