002 selenium 元素定位

Posted huafan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

 













以上是关于002 selenium 元素定位的主要内容,如果未能解决你的问题,请参考以下文章

python+selenium元素定位不到,求助,请直接写出定位到该元素的代码

002_selenium

selenium+Python页面元素定位问题

『心善渊』Selenium3.0基础 — 4Selenium基础元素定位详解

selenium8种常用元素定位简介

Selenium基础篇之八大元素定位方式