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("新闻")
from selenium import webdriver
# 对应chromedriver.exe的位置
path = r'D:\Chrome\Application\chromedriver.exe'
# 创建浏览器操作对象
browser = webdriver.Chrome(path)
# 要访问的url
url = 'https://www.baidu.com'
# 发起访问
browser.get(url) # 元素定位 # 根据id来找到对象
# button = browser.find_element_by_id('su')
# print(button) # 根据标签属性的属性值来获取对象的
# button = browser.find_element_by_name('wd')
# print(button) # 根据xpath语句来获取对象
# button = browser.find_elements_by_xpath('//input[@id="su"]')
# print(button) # 根据标签的名字来获取对象,带s 返回是数组元素
# button = browser.find_elements_by_tag_name('input')
# print(button) # 使用的bs4的语法来获取对象
# button = browser.find_elements_by_css_selector('#su')
# print(button)

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

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

# 获取标签的名字
print(input.tag_name) #input标签 # 获取元素文本
a = browser.find_element_by_link_text('新闻') #新闻
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()
from selenium import webdriver

# 创建浏览器对象
path = r'D:\Chrome\Application\chromedriver.exe'
browser = webdriver.Chrome(path) # url
url = 'https://www.baidu.com'
browser.get(url) #引入时间模块
import time
# 睡眠2s
time.sleep(2) # 获取文本框的对象
input = browser.find_element_by_id('kw') # 1、在文本框中输入关键字周杰伦
input.send_keys('周杰伦') time.sleep(2) # 获取百度一下的按钮
button = browser.find_element_by_id('su') # 2、点击百度一下按钮
button.click() time.sleep(2) # 3、滑到底部
js_bottom = 'document.documentElement.scrollTop=100000'
# 执行js脚本
browser.execute_script(js_bottom) time.sleep(2) # 获取下一页的按钮
next = browser.find_element_by_xpath('//a[@class="n"]') # 4、点击下一页
next.click() time.sleep(2) # (第2页) # 5、回到上一页(第1页)
browser.back() time.sleep(2) # 6、回去 (第2页)
browser.forward() time.sleep(3) # 7、退出
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. 【C++ Primer Plus】编程练习答案——第11章 (待更新)

    最近开学,事情较多,过两天更新...

  2. 2.1 附录--JVM指令手册

    栈和局部变量操作 将常量压入栈的指令 aconst_null 将null对象引用压入栈 iconst_m1 将int类型常量-1压入栈 iconst_0 将int类型常量0压入栈 iconst_1 将 ...

  3. HDC 2021 | HMS Core 6.0:连接与通信论坛,为App打造全场景连接体验

    如何在弱网环境下让用户享受无中断沉浸体验? 如何在全场景互联中让多设备交互如丝般顺滑? 如何在无网区域让移动终端发出紧急求助信息? 连接无处不在,连接与体验息息相关!流畅的网络体验已成为应用开发的关键 ...

  4. MyBatis概念和”安装“

    MyBatis概念 MyBatis的前身就是iBatis,本是apache的一个开源项目,2010年这个项目由apahce sofeware foundation 迁移到了google code,并且 ...

  5. Java:AQS 小记-1(概述)

    Java:AQS 小记-1(概述) 概述 全称是 Abstract Queued Synchronizer(抽象队列同步器),是阻塞式锁和相关的同步器工具的框架,这个类在 java.util.conc ...

  6. Beta阶段第八次会议

    Beta阶段第八次会议 时间:2020.5.24 完成工作 姓名 工作 难度 完成度 ltx 1.修改一下小程序游客模式的风格 轻 80% xyq 1.针对昨天提出的意见对场地申请表格进行修改 中 9 ...

  7. (数据科学学习手札129)geopandas 0.10版本重要新特性一览

    本文示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 就在前不久,我们非常熟悉的Python地理 ...

  8. 使用jave2实现将wav格式的音频转换成mp3格式

    最近需要用到语音合成功能,网上查阅了一番,发现可以使用腾讯云的语音合成API来完成这个功能,但是腾讯云的api返回的是wav格式的音频文件,这个格式的文件有些不通用,因此需要转换成mp3格式的文件. ...

  9. webpack基础以及webpack中babel的配置

    webpack 安装 npm 初始化,控制台输入 npm init -y webpack 安装 npm i webpack webpack-cli -D 新建 webpack.config.js co ...

  10. 2021.7.28考试总结[NOIP模拟26]

    罕见的又改完了. T1 神炎皇 吸取昨天三个出规律的教训,开场打完T2 20pts直接大力打表1h. 但怎么说呢,我不懂欧拉函数.(其实exgcd都忘了 于是只看出最大平方因子,不得不线性筛,爆拿60 ...