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. Python爬虫:通过做项目,小编了解了酷狗音乐的加密过程

    1.前言 小编在这里讲一下,下面的内容仅供学习参考,切莫用于商业活动,一经被相关人员发现,本小编概不负责!读者切记切记. 2.获取音乐播放列表 其实,这就是小编要讲的重点,因为就是这部分用到了加密. ...

  2. Django整理(四) - URL配置

    1. URL配置 一.需求 1. 需求:在浏览器访问URL地址 http://127.0.0.1:8000/users/index 时,显示hello django信息 2. 实现 i. 需要编写一个 ...

  3. 峰值利用率80%+,视频云离线转码自研上云TKE实践

    作者 刘兆瑞,腾讯云高级研发工程师,负责腾讯明眸极速高清,画质重生等产品.专注于codec优化,画质增强等技术. 背景和问题 随着流量资费的降低和带宽的增加,视频成为人们获取信息越来越重要的方式,随之 ...

  4. 测试开发【提测平台】分享12-掌握日期组件&列表状态格式化最终实现提测管理多条件搜索展示功能

    微信搜索[大奇测试开],关注这个坚持分享测试开发干货的家伙. 本章内容思维导图如下,由于需要各种状态下的菜单操作,所以需要先实现提测信息的列表基础页面,然后再推进其他需求开发 基本知识点学习 Date ...

  5. sprintboot整合mybatis查询不出数据

    数据库有数据,程序没有任何报错,但是查询结果没有数据,list显示[null,nul]. 检查了sql语句,以及controller.service.mapper,检查没发现问题,怀疑是字段映射问题. ...

  6. 2020.11.6-vj补题

    A - A CodeForces - 136A 题解:按输入的顺序输出对应的下标即可,定义一个数组,将输入的作为下标,下标为值,最后依次输出即可: #include<bits/stdc++.h& ...

  7. PTA数据结构 习题2.8 输出全排列 (20分)

    习题2.8 输出全排列 (20分) 请编写程序输出前n个正整数的全排列(n<10),并通过9个测试用例(即n从1到9)观察n逐步增大时程序的运行时间. 输入格式: 输入给出正整数n(<10 ...

  8. 【转载】如何从零开始开发一款嵌入式产品(20年的嵌入式经验分享学习,来自STM32神舟系列开发板设计师的总结

    [好文章值得分享,摘自作者:jesse] 来源:www.armjishu.com作者:jesse转载请注明出处 我的另一篇文章:<STM32嵌入式入门必看之文章-----介绍非常详细!(学STM ...

  9. jq问题

    <div id="box"> <p> <span>A</span> <span>B</span> </ ...

  10. abstract使用方式

    springMVC中的 LocalContextHolder是一个 abstract类.里边方法都是static 的. 不能被继承.不能实例化.只能调用其定义的static 方法.这种 abstrac ...