selenium新版元素定位方法、元素操作与基本API

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

 一、selenium新版元素定位方法

注意:selenium新版元素定位需要导入方法By,使用By来调用元素定位方法
    from selenium.webdriver.common.by import By

   

1、ID属性值定位

标签的 id属性具有唯一性,就像人的身份证,不存在根据一个id属性定位到多个标签的情况。假设有个iframe标签如下,其 id 属性值为"actionFrame"。

<iframe name="actionFrame" id="actionFrame" border="0" style="display:none;">

我们可以通过 id 属性值定位到这个标签。由于 id 的唯一性,我们可以不用管其他的标签的内容。

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

url = 'https://www.chinagwy.org/html/stzx/202301/7_557715.html'
driver = webdriver.Chrome()  #打开浏览器
driver.get(url)   # 打开网址

driver.find_element(By.ID, "actionFrame")

2、name 属性值定位

name 指定标签的名称,在页面中可以不唯一。假设有个 input 标签如下,其 name 属性值为"major"。

<input id="major" value="专业" name="major">

我们可以使用driver.find_element(By.NAME, 'major')来定位这个标签。

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

url = 'https://www.chinagwy.org/html/stzx/202301/7_557715.html'
driver = webdriver.Chrome()  #打开浏览器
driver.get(url)   # 打开网址

driver.find_element(By.NAME, 'major')

注意:用 name 方式定位需要保证 name 属性值唯一,否则定位会失败,即定位到的元素不一定是你想要定位的元素。如果name 属性值不唯一,可以用driver.find_elements方式定位,找到所有与name 属性值对应的标签,得到的将是一个包含所有与name属性值对应的标签的列表。如:

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

url = 'https://www.baidu.com/index.php?tn=98010089_dg&ch=28'
driver = webdriver.Chrome()  #打开浏览器
driver.get(url)   # 打开网址
#找到name属性值为tj_settingicon的所有标签
xpath = driver.find_elements(By.NAME, 'tj_settingicon') 

type(xpath)  #返回结果的类型
len(xpath)  #列表长度

3、class name 属性值定位

class 属性值指定标签的类名,在页面中可以不唯一。假设有个 div 标签如下,其 class 属性值为"toolbar-search-container"。

<div class="toolbar-search-container">

我们可以使用 driver.find_element(By.CLASS_NAME, 'toolbar-search-container') 定位到 div 标签。同样,用 CLASS_NAME方式定位需要保证 class属性值唯一,否则定位会失败。

4、tag_name 定位

tag_name 定位即通过标签名定位。每个标签往往用来定义一类功能,所以通过 tag_name 来识别某个元素的成功率很低,每个页面一般都用很多相同的 tag 。假设有个 div 标签如下,其标签名即为div。

<div class="toolbar-search-container">

我们可以使用 driver.find_element(By.TAG_NAME, 'div ')定位到 div 标签。

前三种方式:ID属性值定位、name 属性值定位、class name 属性值定位,均是根据元素(标签)的属性值定位,而第四种tag_name 定位则是根据标签名定位。

5、xpath 定位

参考:selenium中元素定位——Xpath的高级用法_selenium xpath语法-CSDN博客文章来源地址https://www.toymoban.com/news/detail-771550.html

到了这里,关于selenium新版元素定位方法、元素操作与基本API的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【Selenium】隐藏元素的定位和操作|隐藏与isDisplay方法

    一、selenium 中隐藏元素如何定位? 如果单纯的定位的话,隐藏元素和普通不隐藏元素定位没啥区别,用正常定位方法就行了 但是吧~~~能定位到并不意味着能操作元素(如click,clear,send_keys) 二、隐藏元素 如下图有个输入框和一个登录的按钮,本来是显示的   元素的属性隐藏

    2024年04月10日
    浏览(42)
  • 【selenium自动化测试】如何定位页面元素,及对页面元素的操作方法

    selenium元素定位 ​selenium定位元素的方式有8种。 fild_element(by,value):by表示使用的定位方式,定位方式可以参见By类。value表示值,例如:根据id定位 By.ID,value=id属性的值。该方法返回元素对象,返回值如下: 这个返回结果说明:返回值为WebElement类的对象,元素在使用方法时

    2024年02月10日
    浏览(63)
  • Python爬虫(1)一次性搞定Selenium(新版)8种find_element元素定位方式

    selenium中有8种不错的元素定位方式,每个方式和应用场景都不一样,需要根据自己的使用情况来进行修改 目前selenium已经出现了新的版本的定位方式,虽然说定位语法不一样,但是万变不离其宗。 用旧版的定位语法就会出现这个删除线,你用他来进行爬虫的时候运行时就会提

    2024年02月03日
    浏览(56)
  • selenium【元素定位与操作】

    定位元素 [@属性=‘属性值’] [@属性] [tag] [text()=‘文本’] 返回的是元素两个间的文本 [contains(text(),“元素两个间的部分文本”)] [contains(@属性名,“部分属性值”)] 定位下拉列表的某个选项:driver.find_element(By.XPATH,‘//option[text()=“联想”]’) driver.find_element(By.XPATH,‘//o

    2024年04月18日
    浏览(56)
  • selenium元素定位与操作

    说明:本篇博客基于selenium 4.1.0 在selenium中,想要对元素进行操作,一般需要如下步骤: 在浏览器中查看元素属性,便于selenium在页面中找到该元素 在代码中创建元素对象 元素操作、获取元素信息 方法1:右键-检查 方法2:设置-更多工具-开发者模式 方法3:默认快捷键F12 出

    2024年02月15日
    浏览(45)
  • selenium页面元素定位、操作

       1、通过页面开发者工具(点击键盘F12或者空白处右击点击检查)中的element,查看页面html代码; 2、点击开发者工具左上角鼠标按钮; 3、鼠标移动至需要定位元素位置; 4、高亮显示; 5、右击选择定位方式。 1 打开 / 关闭浏览器 注意: 关闭浏览器close和quit的区别: 以

    2023年04月08日
    浏览(51)
  • 已解决(最新版selenium框架元素定位报错)NameError: name ‘By‘ is not defined

    已解决(最新版selenium框架元素定位报错)NameError: name ‘By‘ is not defined 一个粉丝群的小伙伴提出的问题,操作selenium定位元素的时候报错(当时他心里瞬间凉了一大截,跑来找我求助,然后顺利帮助他解决了,顺便记录一下希望可以帮助到更多遇到这个bug不会解决的小伙伴

    2023年04月10日
    浏览(57)
  • selenium元素定位方式及常用操作

    要想操作一个对象,首先应该识别这个对象。 定位方式有很多,但是要保证这种方式存在,且能够唯一的定位到这个元素。 1、用 id 来定位 优先选择 ※ 首先在 Chrome 浏览器上把鼠标放到搜索框,鼠标右击选择开发者模式(快捷键:f12),查看对应 id 名 2、用 name 来定位 在开

    2024年02月02日
    浏览(133)
  • (三) selenium元素定位和常用操作(下)

    上一篇:(二) selenium元素定位(上)_要开朗的spookypop的博客-CSDN博客 本篇继续介绍常用的元素定位和常用操作。 通过链接文本定位 alerts弹窗 浏览器窗口操作 1、通过链接文本定位 上图是一个返回首页的链接,点击后跳转到首页,元素定位关键代码: driver.find_element(By.LINK_TEXT,

    2024年02月11日
    浏览(50)
  • selenium定位元素(包括父子,兄弟)及常见操作

    id定位:find_element_by_id() name定位:find_element_by_name() class定位:find_element_by_class_name() link定位:find_element_by_link_text() partial link定位:find_element_by_partial_link_text() tag定位:find_element_by_tag_name() xpath定位:find_element_by_xpath() css定位:find_element_by_css_selector() .表示当前节点,…表示父

    2023年04月08日
    浏览(74)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包