一、八种元素定位方法

[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 webdriver

driver = webdriver.Firefox()
driver.maximize_window()
driver.implicitly_wait(30)

driver.get(‘https://www.baidu.com/‘)
time.sleep(2)
# 通过id定位到百度搜索框
driver.find_element_by_id("kw").send_keys("selenium")
time.sleep(2)
driver.find_element_by_id("kw").clear()

driver.quit()

2. name定位

通过find_element_by_name()来进行定位

import time
from selenium import webdriver

driver = webdriver.Firefox()
driver.maximize_window()
driver.implicitly_wait(30)

time.sleep(2)
# 通过name定位百度搜索框
driver.find_element_by_name("wd").send_keys("自动化")
time.sleep(2)
driver.find_element_by_name("wd").clear()

driver.quit()

3. class_name定位

通过find_element_by_class_name()来进行定位

import time
from selenium import webdriver

driver = webdriver.Firefox()
driver.maximize_window()
driver.implicitly_wait(30)

time.sleep(2)
# 通过class_name定位百度搜索框
driver.find_element_by_class_name("s_ipt").send_keys("测试")
time.sleep(2)
driver.find_element_by_class_name("s_ipt").clear()

driver.quit()

4. tag_name定位

通过find_element_by_tag_name()来进行定位

import time
from selenium import webdriver

driver = webdriver.Firefox()
driver.maximize_window()
driver.implicitly_wait(30)

time.sleep(2)
# 通过tag_name定位百度搜索框, elements表示找到符合条件的所有元素,并存在一个列表中
ele = driver.find_elements_by_tag_name("input")
# 从定位到的标签名为"input"的元素中找到百度搜索框对应的元素
for i in ele:
    if i.get_attribute(‘id‘) == "kw":
        i.send_keys("学习")
        time.sleep(2)
        i.clear()

driver.quit()

5. link_text定位

通过find_element_by_link_text()来进行定位,可以定位页面中的超链接元素

import time
from selenium import webdriver

driver = webdriver.Firefox()
driver.maximize_window()
driver.implicitly_wait(30)

time.sleep(2)
# 通过link_text定位贴吧
driver.find_element_by_link_text("贴吧").click()
time.sleep(2)

driver.quit()

6. partial_link_text定位

通过find_element_by_partial_link_text()来进行定位,可以定位页面中的超链接元素,模糊定位

import time
from selenium import webdriver

driver = webdriver.Firefox()
driver.maximize_window()
driver.implicitly_wait(30)

time.sleep(2)
# 通过partial_link_text定位百度首页
driver.find_element_by_partial_link_text("首页").click()
time.sleep(2)

driver.quit()

7. xpath定位

通过find_element_by_xpath()来进行定位

import time
from selenium import webdriver

driver = webdriver.Firefox()
driver.maximize_window()
driver.implicitly_wait(30)

time.sleep(2)
# 通过xpath的绝对路径定位百度搜索框
driver.find_element_by_xpath("/html/body/div[1]/div[1]/div/div[1]/div/form/span[1]/input").send_keys("绝对路径")
time.sleep(2)
driver.find_element_by_xpath("s_ipt").clear()

time.sleep(2)
# 通过xpath的相对路径定位百度搜索框
driver.find_element_by_xpath("//*[@id=‘kw‘]").send_keys("相对路径")
time.sleep(2)
driver.find_element_by_xpath("s_ipt").clear()

time.sleep(2)
# 通过xpath的相对路径的模糊定位定位百度搜索框
driver.find_element_by_xpath("//*[contains(@class, ‘ipt‘]").send_keys("相对路径_模糊定位")
time.sleep(2)
driver.find_element_by_xpath("s_ipt").clear()

driver.quit()

8. css_selector定位

通过find_element_by_css_selector()来进行定位

import time
from selenium import webdriver

driver = webdriver.Firefox()
driver.maximize_window()
driver.implicitly_wait(30)

driver.get("https://www.baidu.com")

time.sleep(2)
# 通过css_selector的class定位百度搜索框
driver.find_element_by_css_selector(".s_ipt").send_keys("css")
time.sleep(2)
driver.find_element_by_css_selector(".s_ipt").clear()

time.sleep(2)
# 通过css_selector的id定位百度搜索框
driver.find_element_by_css_selector("#kw").send_keys("selector")
time.sleep(2)
driver.find_element_by_css_selector("#kw").clear()

time.sleep(2)
# 通过css_selector的属性定位百度搜索框
driver.find_element_by_css_selector("[name=‘wd‘]").send_keys("属性")
time.sleep(2)
driver.find_element_by_css_selector("[name=‘wd‘]").clear()

time.sleep(2)
# 通过css_selector的层级定位百度搜索框
driver.find_element_by_css_selector("span > input").send_keys("层级")
time.sleep(2)
driver.find_element_by_css_selector("span > input").clear()

driver.quit()

注意:使用element定位到的都是单个元素;而使用elements定位到的是多个元素,存放在一个列表中。

# 对应的八种查找多个元素的方法:
find_elements_by_id
find_elements_by_name
find_elements_by_class_name
find_elements_by_tag_name
find_elements_by_link_text
find_elements_by_partial_link_text
find_elements_by_xpath
find_elements_by_css_selector

9. By类定位方法

‘‘‘
通过导入By类,from selenium.webdriver.common.by import By
可以用find_element(by=By.ID, value=None)代表find_element_by...方法
可以用find_elements(by=By.ID, value=None)代表find_elements_by...方法
‘‘‘
from selenium.webdriver.common.by import By
By.ID
By.NAME
By.CLASS_NAME
By.TAG_NAME
By.LINK_TEXT
By.PARTIAL_LINK_TEXT
By.XPATH
By.CSS_SELECTOR

原文地址:https://www.cnblogs.com/aaron-zhou/p/12153083.html

时间: 2024-10-09 19:18:09

一、八种元素定位方法的相关文章

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

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

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_elem

Robotframework + Appium 之常用元素定位方法

任何自动化测试,其实手动测试也是一样的,元素定位(目标定位)是首要任务,这是最直接的测试对象呀! 好了,废话不多说,又到了元素定位啦,之前我们已经介绍过selenium及appium常用的定位方法,下面再单独介绍下 Robotframework-AppiumLibrary常用元素定位方法,其实它们的思想是一样的,只是格式上有些差异,详情如下: AppiumLibrary需要在应用程序中查找元素的所有关键字都使用参数locator.当提供locator值时,它将与特定元素类型的键属性进行匹配. 常

04-selenium 八大元素定位方法

目录 selenium 八大元素定位方法 1.id 2.name 3.class name 4.tag 5.link text 6.partial link text 7.xpath 8.css selector 8.1 示例:特殊 iframe 操作 8.2 示例:特殊 Select 操作 9.总结 selenium 八大元素定位方法 对于元素的定位,WebDriver API可以通过定位简单的元素和一组元素来操作.在这里,我们需要告诉Selenium如何去找元素,以至于他可以充分的模拟用户行

selenium元素定位方法介绍

元素定位方法 元素名称 webdriver API id find_element_by_id() name find_element_by_name() class name find_element_by_class_name() tag name find_element_by_tag_name() link text find_element_by_link_text() partial link text find_element_by_partial_link_text() xpat

Appium学习笔记4_元素定位方法

Appium之元素定位,如果对Android上如何使用工具获取页面元素有问题的,请转战到这:http://www.cnblogs.com/taoSir/p/4816382.html. 下面主要是针对自己的了解和学习,简单的总结下关于Appium native APP上的一些元素定位方法的使用以及通过UI Automator Viewer定位页面以后,如果从上面定位到你想使用的元素. 已淘宝为例,来进行元素的定位.打开UI Automator Viewer Appium和Webdriver有一点区