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元素定位不到,求助,请直接写出定位到该元素的代码