selenium的元素定位?
元素定位:自动化要做的就是模拟鼠标和键盘来操作来操作这些元素,点击、输入等等。操作这些元素前首先
要找到它们,WebDriver提供很多定位元素的方法
  方法:
  1.find_element_by_id
    eg:button = browser.find_element_by_id('su')
  2.find_elements_by_name
    eg:name = browser.find_element_by_name('wd')
  3.find_elements_by_xpath
    eg:xpath1 = browser.find_elements_by_xpath('//input[@id="su"]')
  4.find_elements_by_tag_name
    eg:names = browser.find_elements_by_tag_name('input')
  5.find_elements_by_css_selector
    eg:my_input = browser.find_elements_by_css_selector('#kw')[0]
  6.find_elements_by_link_text
    eg:browser.find_element_by_link_text("新闻")
  1. from selenium import webdriver
  2. # 对应chromedriver.exe的位置
  3. path = r'D:\Chrome\Application\chromedriver.exe'
    # 创建浏览器操作对象
    browser = webdriver.Chrome(path)
  4. # 要访问的url
  5. url = 'https://www.baidu.com'
    # 发起访问
    browser.get(url)
  6.  
  7. # 元素定位
  8.  
  9. # 根据id来找到对象
  10. # button = browser.find_element_by_id('su')
  11. # print(button)
  12.  
  13. # 根据标签属性的属性值来获取对象的
  14. # button = browser.find_element_by_name('wd')
  15. # print(button)
  16.  
  17. # 根据xpath语句来获取对象
  18. # button = browser.find_elements_by_xpath('//input[@id="su"]')
  19. # print(button)
  20.  
  21. # 根据标签的名字来获取对象,带s 返回是数组元素
  22. # button = browser.find_elements_by_tag_name('input')
  23. # print(button)
  24.  
  25. # 使用的bs4的语法来获取对象
  26. # button = browser.find_elements_by_css_selector('#su')
  27. # print(button)

  28. # 获取对应链接中的文本
  29. # button = browser.find_element_by_link_text('直播')
  30. # print(button)
访问元素信息
  获取元素属性
    .get_attribute('class')
  获取元素文本
    .text
  获取标签名
    .tag_name
  1. from selenium import webdriver
  2. # 启动路径
  3. path = r'D:\Chrome\Application\chromedriver.exe'
  4. browser = webdriver.Chrome(path)
  5.  
  6. url = 'http://www.baidu.com'
  7. browser.get(url)

  8. # 借助id唯一,获取对应id的元素
  9. input = browser.find_element_by_id('su')
  10.  
  11. # 获取元素标签的属性
  12. print(input.get_attribute('class')) # bg s_btn

  13. # 获取标签的名字
  14. print(input.tag_name) #input标签
  15.  
  16. # 获取元素文本
  17. a = browser.find_element_by_link_text('新闻') #新闻
  18. print(a.text)
交互
  点击:click()
  输入:send_keys()
  后退操作:browser.back()
  前进操作:browser.forword()
  模拟JS滚动:
    js='document.documentElement.scrollTop=100000'
    browser.execute_script(js) 执行js代码
  获取网页代码:page_source
  退出:browser.quit()
  1. from selenium import webdriver
  2.  
  3. # 创建浏览器对象
  4. path = r'D:\Chrome\Application\chromedriver.exe'
  5. browser = webdriver.Chrome(path)
  6.  
  7. # url
  8. url = 'https://www.baidu.com'
  9. browser.get(url)
  10.  
  11. #引入时间模块
  12. import time
  13. # 睡眠2s
  14. time.sleep(2)
  15.  
  16. # 获取文本框的对象
  17. input = browser.find_element_by_id('kw')
  18.  
  19. # 1、在文本框中输入关键字周杰伦
  20. input.send_keys('周杰伦')
  21.  
  22. time.sleep(2)
  23.  
  24. # 获取百度一下的按钮
  25. button = browser.find_element_by_id('su')
  26.  
  27. # 2、点击百度一下按钮
  28. button.click()
  29.  
  30. time.sleep(2)
  31.  
  32. # 3、滑到底部
  33. js_bottom = 'document.documentElement.scrollTop=100000'
  34. # 执行js脚本
  35. browser.execute_script(js_bottom)
  36.  
  37. time.sleep(2)
  38.  
  39. # 获取下一页的按钮
  40. next = browser.find_element_by_xpath('//a[@class="n"]')
  41.  
  42. # 4、点击下一页
  43. next.click()
  44.  
  45. time.sleep(2) # (第2页)
  46.  
  47. # 5、回到上一页(第1页)
  48. browser.back()
  49.  
  50. time.sleep(2)
  51.  
  52. # 6、回去 (第2页)
  53. browser.forward()
  54.  
  55. time.sleep(3)
  56.  
  57. # 7、退出
  58. browser.quit()

selenium的 元素定位、元素信息、交互的更多相关文章

  1. 每天一个JavaScript实例-操作元素定位元素

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  2. selenium的八大定位元素的方式

    #八大定位方式 from selenium import webdriver def BrowserOpen(): driver = webdriver.Chrome(); driver.maximi ...

  3. selenium+iframe 如何定位元素(实战)

    场景: 在同一界面,需定位iframe里面的元素, 就需要切换至Iframe块,然后定位元素,验证完成后,再切换出来. 如果不切换至iframe ,会发现不管采取什么定位,都会报元素不存在.

  4. selenium使用location定位元素坐标偏差

    python+selenium+Chromedriver使用location定位元素坐标偏差使用xpath定位元素,用.location获取坐标值,截取网页截图的一部分出现偏差. 之所以会出现这个坐标 ...

  5. python + selenium 练习篇 - 定位元素的方法

    1.利用ID定位元素(能直接通过ID来定位的元素比较少) # coding=utf-8from selenium import webdriverdriver = webdriver.Chrome() ...

  6. 【Selenium01篇】python+selenium实现Web自动化:搭建环境,Selenium原理,定位元素以及浏览器常规操作!

    一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 二.话不多说,直接开干,开始搭建自动化测试环境 这里以前在 ...

  7. selenium八种定位元素方法

    1.driver.find_element_by_id('su') 定位到元素的id一般id是唯一的,可以精确定位到元素 2.driver.find_element_by_name() 通过元素的na ...

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

    目录 1.什么是元素定位 2.Selenium元素定位常用API (1)By_id 定位 (2)by_name 定位 (3)by_class_name 定位 (4)by_tag_name 定位 (5) ...

  9. Appium学习路—Android定位元素与操作

    一.常用识别元素的工具 uiautomator:Android SDK自带的一个工具,在tools目录下 monitor:Android SDK自带的一个工具,在tools目录下 Appium Ins ...

  10. Appium Android定位元素与操作

    文章写得很好,转载备用 一.常用识别元素的工具 uiautomator:Android SDK自带的一个工具,在tools目录下 monitor:Android SDK自带的一个工具,在tools目录 ...

随机推荐

  1. 使用Jacoco统计服务端代码覆盖情况实践

    一.背景 随着需求的迭代,需求增加的同时,有可能会伴随着一些功能的下线.如果不对系统已经不用的代码进行梳理并删除不需要的代码,那么就会增加系统维护成本以及理解成本.但经历比较长的迭代以及系统交接,可能 ...

  2. Java程序的执行过程

    Java程序的执行过程 编译器将 Java 源代码编译成字节码class文件 类加载到 JVM 里面后,执行引擎把字节码转为可执行代码 执行的过程,再把可执行代码转为机器码,由底层的操作系统完成执行

  3. Centos7最小安装后快速初始化脚本

    功能说明 服务器通常使用最小化安装操作系统,使用该脚本可快速初始化一些基本配置,包括以下: 1.ssh修改默认端口 2.ssh禁止root登陆 3.selinux及firewalld禁用 4.hist ...

  4. FastAPI 学习之路(十四)响应模型

    系列文章: FastAPI 学习之路(一)fastapi--高性能web开发框架 FastAPI 学习之路(二) FastAPI 学习之路(三) FastAPI 学习之路(四) FastAPI 学习之 ...

  5. C# 提取PDF中的表格

    本文介绍在C#程序中(附VB.NET代码)提取PDF中的表格的方法,调用Spire.PDF for .NET提供的提取表格的类以及方法等来获取表格单元格中的文本内容:代码内容中涉及到的主要类及方法归纳 ...

  6. Kafka消息(存储)格式及索引组织方式

    要深入学习Kafka,理解Kafka的存储机制是非常重要的.本文介绍Kafka存储消息的格式以及数据文件和索引组织方式,以便更好的理解Kafka是如何工作的. Kafka消息存储格式 Kafka为了保 ...

  7. 【UE4 C++ 基础知识】<9> Interface 接口

    概述 简单的说,接口提供一组公共的方法,不同的对象中继承这些方法后可以有不同的具体实现. 任何使用接口的类都必须实现这些接口. 实现解耦 解决多继承的问题 蓝图使用 使用方法 三种调用方法的区别 调用 ...

  8. 反调试——11——检测TF标志寄存器

    反调试--11--检测TF标志寄存器 在intel的x86寄存器中有一种叫标志寄存器: 标志寄存器中的TF(Trap Flag)位,CPU在执行完一条指令后,如果检测到标志寄存器的TF位为1,则会产生 ...

  9. [no_code][Beta]发布声明报告

    $( "#cnblogs_post_body" ).catalog() 软件下载 一个全新的超简易的OCR表单识别工具 轻松拍照,实现手写表格识别 一键打开,支持多种应用打开你的表 ...

  10. Vue报错 type check failed for prop “xxx“. Expected String with value “xx“,got Number with value ‘xx‘

    vue报错    [Vue warn]: Invalid prop: type check failed for prop "name". Expected String with ...