selenium学习之路1之元素定位

这篇具有很好参考价值的文章主要介绍了selenium学习之路1之元素定位。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

selenium学习之路1

参考视频:https://www.bilibili.com/video/BV1NM4y1K73T/?p=63&spm_id_from=pageDriver&vd_source=7963e4096d2b51e52877519dc0202e3e
此为链接

一、环境安装

  1. 安装Python3编译器
  2. 安装Pycharm软件集成环境
  3. 安装selenium包:pip install selenium
  4. 安装浏览器
  5. 安装浏览器对应的WebDriver驱动程序(点击这里下载最新的驱动
    ,驱动要放进要测试脚本的路径内)

二、代码示例

备注1:建立python文件时,名字以拼音或英文命名,不要以数字开头,不写中文,避免引用出错!
备注2:要根据浏览器写代码时,最好先打开浏览器的无痕窗口,没有cookie,就相当于代码打开的浏览器一样。

#先打开无痕模式。
#导包
from selenium import webdriver
import time
#webdriver获取浏览器对象
driver = webdriver.Chrome() # 记得是大写的Chrome
#准备地址
url = "https://www.baidu.com"
#使用driver,打开浏览器
driver.get(url)
#页面停留5秒
time.sleep(5)
#最后回收资源
driver.quit()

运行后会打开页面,并自动关闭
selenium学习之路1之元素定位,selenium,学习,python

三、基本语法

(一)元素查找

1、目的:定位浏览器的元素
2、浏览器查看id\name\class\tag等:打开浏览器-》点击右键-》点击检查-》点击小箭头-》点击想查看的任意元素,标蓝的代码就是元素的id\name\class\tag等
(或直接点击 Fn + F12 )
selenium学习之路1之元素定位,selenium,学习,python

3、查找方式:
(1)普通查找 (下面这几种方式并不一定都用,有id用id)
id:唯一
name
class_name(在浏览器里其实叫class)(如果class里面出现了空格,就用小圆点代替)
tag_name(一般不使用,重复性太高)
示例:

#导包
from selenium import webdriver  #必须导!
import time  #停留时间供我们查看
from selenium.webdriver.common.by import By  #查找元素时需要

#webdriver获取对象
driver = webdriver.Chrome()
url = "https://www.baidu.com"
#打开百度浏览器
driver.get(url) 

#基本查找元素(三种方法)
#输入python
driver.find_element(By.ID,"kw").send_keys("PYTHON") #靠id找到元素
#点击百度
driver.find_element(By.ID,"su").click()
#打开登录界面
driver.find_element(By.NAME,"tj_login").click() #靠name找到元素
#等待五秒
time.sleep(5) #有时候报错,是因为浏览器加载较慢,要给缓冲时间
#关闭登录界面
driver.find_element(By.CLASS_NAME,"close-btn").click()  #靠class_name找到元素
time.sleep(5)
#成功退出
driver.quit()

运行成功!

(2)超链接查找(a标签)根据文本进行查找
selenium学习之路1之元素定位,selenium,学习,python
(这个新闻就属于a标签的文本)
link_text

driver.find_element(By.LINK_TEXT,"hao123").click()

partial_link_text

driver.find_element(By.PARTIAL_LINK_TEXT,"hao12").click()

(3)CSS选择器查找(如果不熟悉建议用Xpath的方式)
在CSS中,选择器是选取设置样式的元素的模式

语法:

.class 如.intro 即选择class = 'intro’的所有元素

#id 如#su 即选择id = 'su’的所有元素

[attribute = value] 如[target = bla]即选择属性target=bla的所有元素

注意: 和xpath不一样,CSS的[ ]中括号里面没有引号,但中括号外面有!如 “[target = _blank]”,xpath是里面都有引号。

driver.find_element(By.CSS_SELECTOR,"[target=bla]").click()#CSS定位

示例:文章来源地址https://www.toymoban.com/news/detail-837355.html

from selenium import webdriver
import time
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
url = "https://www.baidu.com"
driver.get(url)
#打开百度,输入测试
driver.find_element(By.CSS_SELECTOR,"#kw").send_keys("测试")
#点击百度
driver.find_element(By.CSS_SELECTOR,".bg.s_btn").click()
time.sleep(3)#避免页面没有加载出来
#点击页面第一个搜索结果
driver.find_element(By.CSS_SELECTOR,".uph6cgn").click()
time.sleep(3)
#成功退出。
driver.quit()

(4)XPATH查找只要在XML中,或者HTML中,都可以用这个方式,但是建议优先使用id,name等去定位,实在找不到再用xpath定位
xpath = xml path,XML和HTML都是标签语言,通过标签的嵌套来表达信息,形成了父节点、子节点、后代节点、祖先节点、同胞节点等,而xpath就是用来在这些节点中找到需要的。
(标签又叫标记,也叫元素,也叫节点)
selenium学习之路1之元素定位,selenium,学习,python
selenium学习之路1之元素定位,selenium,学习,python

XML的标签可扩展,可自定义。(XPATH国内读叉帕斯,国外读诶克斯帕斯)。
HTML是超文本标记语言,有图片加载等,超出了文本的范畴,标签不能扩展。

xpath表达式
节点名字:选取此节点的所有子节点
/ 从根节点选取
// 从当前节点选择文档中的节点,而不考虑它们的位置
. 选取当前节点
… 选取当前节点的父节点

获取内容
@ 选取属性
text() 获取文本

进阶表达式:简便方法(在F12打开开发者工具-》选中一行,右击-》copy-》copy XPath 可以获取xpath)
/bookstore/book[1] 选取属于bookstore子元素的第一个book元素
/bookstore/book[last()] 选取属于bookstore子元素的最后一个book元素
/bookstore/book[last()-1] 选取属于bookstore子元素的倒数第二个book元素

//book/title[text()=‘harry potter’] 选取book下的文本为harry potter的title元素
//div[@lang=“eng”] 选取lang属性为eng的所有div元素 (元素即标签)
注意: 和CSS不一样的是,[ ]里面有引号,外面也有,内外引号要用不一样的。如’//title[@lang=“eng”]’

示例:

from selenium import webdriver
import time
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
url = "https://www.baidu.com"
driver.get(url)
#Xpath 查找,注意引号。
#//*[@id='kw'] 指在任意一个标签,去找id='kw'的元素
driver.find_element(By.XPATH,"//*[@id='kw']").send_keys("美女")
driver.find_element(By.XPATH,"//*[@id='su']").click()
time.sleep(3)
#成功退出。
driver.quit()

到了这里,关于selenium学习之路1之元素定位的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python selenium元素的定位

    视频版教程:一天掌握python爬虫【基础篇】 涵盖 requests、beautifulsoup、selenium 对象的定位应该是自动化测试的核心,要想操作一个对象,首先应该识别这个对象。一个对象就是一个人一样,他 会有各种的特征(属性),如比我们可以通过一个人的身份证号,姓名,或者他住在

    2024年02月08日
    浏览(43)
  • Python爬虫——selenium_元素定位

    元素定位:自动化要做的就是模拟鼠标和键盘来操作这些元素,点击,输入等等。操作这些元素前首先要找到它们,WebDriver提供很多定位元素的方法 根据id来找到对象【常用】 根据标签属性的属性值来获取对象 根据xpath语句来获取对象【常用】 find_elements_by_xpath可以返回多个

    2024年02月13日
    浏览(46)
  • 自学Python 69 Selenium八大元素定位方法(新版BY方法)_selenium定位元素的方法和优缺点

    文章目录 Python Selenium八大元素定位方法(新版BY方法) 前言 一、常用的八种定位方法(新旧对比) 二、查看网页元素 三、八大元素定位示例 1、id定位 2、name定位 3、class定位 4、tag定位 5、link定位 6、partial_link定位 7、xpath定位 8、CSS定位 在学习使用Selenium对网页元素进行定位时

    2024年04月22日
    浏览(64)
  • 2.Python中selenium八大元素定位

    目录 如何进行元素定位 浏览器开发者工具介绍 一、id属性定位 二、name定位 三、class_name定位 四、tag_name定位 五、link_text定位 六、partail_link_text定位 七、xpath定位 7.1 选取节点 7.2 谓语 7.3 轴 7.4 函数 7.5 逻辑运算 八、css定位 8.1 css的定义 8.2 css定位策略 1.id选择器 2.class选择器

    2024年02月04日
    浏览(48)
  • Python Selenium 八大元素定位方法(下)

    今天我们来学习UI自动化中,剩余五个元素定位方法:tag_name、link_text、partial_link_text、Xpath、css_selector 以tag_name元素定位为例 HTML是由不同的标签组成的,每个标签都是指的同一类,所以用tag定位效率低下,一般不建议使用。 以link_text元素定位为例 1、使用F12,定位到含有链接

    2024年02月12日
    浏览(46)
  • Selenium常见元素定位方法和操作的学习介绍

            官网地址: 4. Locating Elements — Selenium Python Bindings 2 documentation         这里有各种策略用于定位网页中的元素(locate elements),你可以选择最适合的方案,Selenium提供了一下方法来定义一个页面中的元素: find_element_by_id find_element_by_name

    2024年02月08日
    浏览(49)
  • 【Python中Selenium元素定位的各种方法】

    1、元素定位操作: 2、创建浏览器驱动操作,导入By模块: 3、ID元素定位 4、name元素定位 5、class_name:class属性元素定位 6、tag_name:标签名元素定位 7、link_text:超链接标签元素定位 8、partial_link_text:超链接标签(模糊)元素定位 9、xpath:路径(绝对路径、相对路径)元素定位

    2024年02月19日
    浏览(40)
  • python安装selenium(Firefox和Chrome)+元素定位

    一、下载地址 谷歌浏览器chromedriver驱动下载地址: https://chromedriver.storage.googleapis.com/index.html 火狐浏览器geckodriver驱动下载地址: https://registry.npmmirror.com/binary.html?path=geckodriver/ 二、谷歌浏览器配置: 将下载好的chromedriver驱动解压后放在python文件夹中 三、火狐浏览器: 将下载

    2024年02月06日
    浏览(51)
  • 【web自动化】selenium+python八大元素定位

    推荐:b站软件测试老白 注意点 1.有id才能能使用id定位 2.id不能重复 通过百度页面,演示如何查找id确定id是否重复,其他方式定位也可以这样搜索 代码如下(示例): 如果有多个class_name,可以使用 find_elements 和取下标的方式 例如:打开哔哩哔哩页面,有番剧,电影等等,他

    2024年01月21日
    浏览(84)
  • Python+selenium自动化元素定位防踩坑

    在自动化UI测试过程中常常会在元素定位阶段就踩坑,碰到困扰已久的问题。 以下是个人整理元素定位报错原因和解决方法。 踩坑一:StaleElementReferenceException selenium.common.exceptions.StaleElementReferenceException: Message: stale element reference: element is not attached to the page document 异常原因:

    2024年02月06日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包