002 selenium 元素定位

‘‘‘
时间:2018/11/26
功能:unittest
目录:
    一: 浏览器操作
        1 打开网页
        2 设置休眠
        3 页面刷新
        4 页面切换
        5 设置窗口大小
        6 截屏
        7 退出
    二: 八种定位
        1 find_element_by_id
        2 find_element_by_name
        3 find_element_by_class_name
        4 find_element_by_tag_name      5 find_element_by_link_text
        6 find_element_by_partial_link_text
        7 xpath
        8 css
        9 复数
    三: 操作对象
        1 常规操作
        2 鼠标事件
        3 键盘事件
    四: Error
     1 没权限
       2
‘‘‘

一: 浏览器操作
  1 打开网页

# coding:utf-8
from selenium import webdriver  # 导入模块 - webdriver

driver = webdriver.Firefox()    # 启动浏览器 - Firefox
#driver = webdriver.Chrome()     # 启动浏览器 - Chrome
#driver = webdriver.Ie()         # 启动浏览器 - Ie

driver.get("https://www.baidu.com") # 访问url - 百度

  2 设置休眠

# coding:utf-8
from selenium import webdriver  # 导入模块 - webdriver
import time             # 导入模块 - time

driver = webdriver.Firefox()    # 启动浏览器 - Firefox

driver.get("https://www.baidu.com") # 访问url - 百度
time.sleep(3)                       # 设置休眠 - 3秒钟
driver.quit()                       # 退出浏览器

  3 页面刷新

# coding:utf-8
from selenium import webdriver  # 导入模块 - webdriver
import time                     # 导入模块 - time

driver = webdriver.Firefox()    # 启动浏览器 - Firefox

driver.get("https://www.baidu.com") # 访问url - 百度
time.sleep(3)                       # 设置休眠 - 3秒钟
driver.refresh()                    # 刷新页面

driver.quit()                       # 退出浏览器

  4 页面切换

# coding:utf-8
from selenium import webdriver  # 导入模块 - webdriver
import time                      # 导入模块 - time

driver = webdriver.Firefox()    # 启动浏览器 - Firefox

driver.get("https://www.baidu.com") # 访问url - 百度
time.sleep(2)                       # 设置休眠 - 2秒钟
driver.get("https://www.cnblogs.com/huafan/") # 访问url - 博客园
time.sleep(2)                       # 设置休眠 - 2秒钟

driver.back()       # 返回上一页
time.sleep(2)       # 设置休眠 - 2秒钟
driver.forward()    # 返回下一页
time.sleep(2)       # 设置休眠 - 2秒钟

driver.quit()   # 退出浏览器

  5 设置窗口大小

# coding:utf-8
from selenium import webdriver  # 导入模块 - webdriver
import time                      # 导入模块 - time

driver = webdriver.Firefox()    # 启动浏览器 - Firefox

driver.get("https://www.baidu.com") # 访问url - 百度
time.sleep(2)                       # 设置休眠 - 2秒钟

driver.set_window_size(540, 960)    # 设置窗口 - 540*960
time.sleep(2)                       # 设置休眠 - 2秒钟
driver.maximize_window()            # 设置窗口 - 最大化
time.sleep(2)                       # 设置休眠 - 2秒钟

driver.quit()   # 退出浏览器

  6 截屏

# coding:utf-8
from selenium import webdriver  # 导入模块 - webdriver
import time                     # 导入模块 - time

driver = webdriver.Firefox()    # 启动浏览器 - Firefox

driver.get("https://www.baidu.com") # 访问url - 百度
time.sleep(2)                       # 设置休眠 - 2秒钟

driver.get_screenshot_as_file("C:\\test_001.jpg")   # 截屏浏览器
time.sleep(2)                                       # 设置休眠 - 2秒钟

driver.quit()   # 退出浏览器

  7 退出

# coding:utf-8
from selenium import webdriver  # 导入模块 - webdriver
import time                      # 导入模块 - time

driver = webdriver.Firefox()    # 启动浏览器 - Firefox
driver.get("https://www.baidu.com") # 访问url - 百度
time.sleep(2)                       # 设置休眠 - 2秒钟

#driver.close()  # 关闭窗口 - 当前窗口
driver.quit()   # 退出进程 - 浏览器; 删除文件 - C盘临时

二: 八种定位
  1 find_element_by_id

# coding:utf-8
from selenium import webdriver
import time

driver=webdriver.Firefox()            # 启动浏览器 - Firefox
driver.get("https://www.baidu.com") # 访问url - 百度
time.sleep(1)

# 步骤: 定位 + 操作 + 数据
# 定位(控件) + 操作(键盘/鼠标) + 数据
driver.find_element_by_id("kw").send_keys("汁虫 博客园") # 定位 - 百度搜索框; 操作 - 键盘输入; 数据 - 汁虫 博客园
driver.find_element_by_id("su").click()                  # 定位 - 百度按钮; 操作 - 鼠标点击; 数据 - 无

driver.find_element_by_id("kw").clear()                  # 定位 - 百度搜索框; 操作 - 清除;
driver.find_element_by_id("kw").send_keys("博客园 汁虫") # 定位 - 百度搜索框; 操作 - 键盘输入; 数据 - 博客园 汁虫
driver.find_element_by_id("su").click()                  # 定位 - 百度搜索框; 操作 - 清除;

driver.quit()       # 退出程序

  2 find_element_by_name

# coding:utf-8
from selenium import webdriver
import time

driver=webdriver.Firefox()            # 启动浏览器 - Firefox
driver.get("https://www.baidu.com") # 访问url - 百度
time.sleep(1)

# 步骤: 定位 + 操作 + 数据
driver.find_element_by_name("wd").send_keys("汁虫 博客园")  # 定位 - 百度搜索框; 操作 - 键盘输入; 数据 - 汁虫 博客园
driver.find_element_by_id("su").click()                     # 定位 - 百度按钮; 操作 - 鼠标点击; 数据 - 无
driver.quit()       # 退出程序

  3 find_element_by_class_name

# coding:utf-8
from selenium import webdriver
import time

driver=webdriver.Firefox()            # 启动浏览器 - Firefox
driver.get("https://www.baidu.com") # 访问url - 百度
time.sleep(1)

# 步骤: 定位 + 操作 + 数据
driver.find_element_by_class_name("s_ipt").send_keys("汁虫 博客园")  # 定位 - 百度搜索框; 操作 - 键盘输入; 数据 - 汁虫 博客园
driver.find_element_by_class_name("s_btn").click()                     # 定位 - 百度按钮; 操作 - 鼠标点击; 数据 - 无

driver.quit()       # 退出程序

  4 find_element_by_tag_name

# coding:utf-8
from selenium import webdriver
import time

driver=webdriver.Firefox()            # 启动浏览器 - Firefox
driver.get("https://www.baidu.com") # 访问url - 百度
time.sleep(2)

# 步骤: 定位 + 操作 + 数据
driver.find_element_by_tag_name("area").click() # 定位 - 百度图片;

driver.quit()       # 退出程序

  5 find_element_by_link_text

# coding:utf-8
from selenium import webdriver
import time

driver=webdriver.Firefox()            # 启动浏览器 - Firefox
driver.get("https://www.baidu.com") # 访问url - 百度
time.sleep(1)

# 步骤: 定位 + 操作 + 数据
driver.find_element_by_link_text("学术").click()     # 定位 - 链接; 操作 - 点击;

driver.quit()       # 退出程序

  6 find_element_by_partial_link_text

# coding:utf-8
from selenium import webdriver
import time

driver=webdriver.Firefox()            # 启动浏览器 - Firefox
driver.get("https://www.baidu.com") # 访问url - 百度
time.sleep(1)

# 步骤: 定位 + 操作 + 数据
driver.find_element_by_partial_link_text("术").click()     # 定位 - 链接; 操作 - 点击;

driver.quit()       # 退出程序

  7 xpath

# coding:utf-8
from selenium import webdriver
import time

driver=webdriver.Firefox()            # 启动浏览器 - Firefox
driver.get("https://www.baidu.com") # 访问url - 百度
time.sleep(1)

# 步骤: 定位 + 操作 + 数据
driver.find_element_by_xpath("/html/body/div/div/div/div/div/form/span/input").send_keys("selenium")
driver.find_element_by_xpath("/html/body/div/div/div/div/div/form/span[2]/input").click()

driver.quit()       # 退出程序

  8 css

# coding:utf-8
from selenium import webdriver
import time

driver = webdriver.Firefox()            # 启动浏览器 - Firefox
driver.get("https://www.baidu.com")     # 访问url - 百度
time.sleep(1)

# 步骤: 定位 + 操作 + 数据
# 定位(控件) + 操作(键盘/鼠标) + 数据
driver.find_element_by_css_selector("#kw").send_keys("汁虫 博客园") # 定位 - 百度搜索框; 操作 - 键盘输入; 数据 - 汁虫 博客园
driver.find_element_by_css_selector("#su").click()                  # 定位 - 百度按钮; 操作 - 鼠标点击; 数据 - 无
time.sleep(3)

driver.quit()       # 退出程序

  9 复数

# coding:utf-8
from selenium import webdriver
import time

driver=webdriver.Firefox()            # 启动浏览器 - Firefox
driver.get("https://www.baidu.com") # 访问url - 百度
time.sleep(1)

# 步骤: 定位 + 操作 + 数据
elements = driver.find_elements_by_class_name("mnav")[6].click()

driver.quit()       # 退出程序

三: 操作对象
  1 常规操作

  2 鼠标事件
  3 键盘事件
四: Error
  1 没权限
  2

原文地址:https://www.cnblogs.com/huafan/p/10018372.html

时间: 2024-10-27 12:41:23

002 selenium 元素定位的相关文章

Selenium元素定位学习教程

无论哪一种自动化测试的驱动框架(基于B/S,桌面应用,还是手机App).都应当具有一套优秀的元素定位技术.通常的自动化测试流程也可以简单的归结为是一个从被测试程序中识别或是定位元素以及执行操作和验证元素的过程.这一篇我们就一起学习Selenium以及它是如何定位DOM元素的.本文将会介绍如下内容: Selenium DOM 主要的定位方式. Selenium 如何扩展元素定位方式. 辅助浏览器工具 (一)Selenium DOM主要定位方式 上一篇中,我们介绍了WebDriver和 WebEle

selenium元素定位不到的解决方式

1.如果确信自己的元素的地址写的事正常的,但是就是没有反应的话可以试试切换Frame下 代码为: driver.switch_to.frame("mainFrame") 用完之后记得切换回原来的 driver.switch_to.default_content() 2.对xpath 和css元素定位不是很清楚的话,可以使用的firefox的工具,selenium IDE,通过脚本录制在导出,查看脚本文件,可以很快定位到元素的位置 3.有些元素在打开文件之后,需要一定的等待时间,可以加上

selenium元素定位大全

要做自动化,首先要了解页面结构,要了解页面结构,就要了解页面元素的定位方法 在使用selenium webdriver进行元素定位时,通常使用findElement或findElements方法结合By类返回的元素句柄来定位元素. 常用的元素定位方法如下: 如何选择 定位方法 策略是:选择简单,稳定的定位方法. 1. 当页面元素有id属性的时候, 尽量使用id来定位. 没有的话,再选择其他定位方法 2. cssSelector 执行速度快, 推荐使用 3. 定位超链接的时候,可以考虑linkTe

python selenium 元素定位(三)

上两篇的博文中介绍了python selenium的环境搭建和编写的第一个自动化测试脚本,从第二篇的例子中看出来再做UI级别的自动化测试的时候,有一个至关重要的因素,那就是元素的定位,只有从页面上找到这个元素,我们从能对这个元素进行操作,那么我们下来看看如何来定位元素. selenium 提供了8中元素定位的方法(大家要学习元素的定位,首先可以学习下前端的基础知识,这样有利于我们学习自动化测试,大家可以看一下:http://www.runoob.com/) find_element_by_id

selenium元素定位

1.元素定位 在本章中,我们将讨论 u 使用浏览器工具来检查页面中元素的结构 u 使用findElement方法定位元素 u 使用findElements方法来定位元素 u 定位链接 u 通过标签名称定位元素 u 使用CSS选择器定位元素 u 使用XPath定位元素 u 使用文本定位元素 u 使用高级CSS选择器定位元素 u 使用jQuery选择器 u 定位表格的行和列 u 定位表格中的子元素 1.1.介绍 成功的自动化GUI(图形用户界面)测试取决于从被测试的应用程序中识别和定位GUI元素,然

selenium元素定位不到之iframe

我们在使用selenium的18中定位方式的时候,有时会遇到定位不上的问题,今天我们就来说说导致定位不上的其中一个原因---iframe 问题描述:通过firebug查询到相应元素的id或name等,但在定位此元素的时候就是报错,提示: selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element 问题原因:元素定位不到 问题分析:通过firebug可以看到,但就是定位不到,这时候很有可能

selenium元素定位(三)

使用selenium就不可避免的要提到界面元素定位,通过元素定位来实现一系列的逻辑操作. selenium提供了8中元素定位的方式: id.name.class name.tag name.link text.partial link text.xpath.css selector. 其中使用xpath来根据id或class来定位元素的可以解决大部分问题. 这8中定位方式在python selenium中使用的对应具体方法为: 1 find_element_by_id() 2 find_elem

Java + selenium 元素定位(5)之By Xpath

这篇关于Xpath方法的文章和之前那篇CSS的方法一样,使用前,需要先掌握一些Xpath的相关知识.当然,网上也有各种工具可以帮助我们获取到元素的Xpath,但是这并不代表着我们就可以不用了解Xpath的相关知识,毕竟依赖工具永远没有依赖自己来着靠谱.但是我也会介绍一下如果简单快速的获取元素的Xpath. 我尝试过使用一些文章介绍的快速获取Xpath的工具,但是可能因为这些工具都是依赖于浏览器的扩展工具,更新换代比较快,所以文章介绍的工具我并没有成功找到.我在这里要介绍的方法,不需要使用额外的工

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