Python学习笔记——selenium定位iframe和元素(快速定位)

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

在使用selenium过程,发现定位iframe、元素比较困难,所以制作一个辅助小工具。

一、selenium定位

# 1.导入库
from selenium.webdriver import Chrome
from selenium.webdriver.chrome.options import Options
import traceback
import keyboard
from selenium.webdriver.common.by import By
import time


def test_a():
    global driver

    # 1.获得360浏览器(使用谷歌浏览器可忽略)
    __browser_url = r"D:\360极速浏览器\install\360Chrome\Chrome\Application\360chrome.exe"  # 换成自己的目录
    chrome_options = Options()
    chrome_options.binary_location = __browser_url

    # 2.获得驱动
    driver = Chrome(executable_path=r'drive/chromedriver.exe', options=chrome_options)
    # 3使用驱动 ,打开网页
    driver.get("https://www.csdn.net/")

    # 4.使用驱动,获取元素,操作元素

    # -------------------------第二轮定位调试页面(首次注释)-------------------------
    # 可以有多组,多次进入子iframe
    # a_frame = driver.find_elements(By.TAG_NAME, "iframe")
    # driver.switch_to.frame(a_frame[0])
    # --------------------------------------------------------------------

    # ======================获取当前界面的html代码==================
    file = open("当前界面.txt", mode='w', encoding='utf-8')
    file.write(driver.page_source)
    file.close()

    find_msg = input("请输入要查找的内容:")
    if find_msg in driver.page_source:
        print("当前界面,=====================>包含:{}".format(find_msg))
    else:
        print("当前界面,不包含:{}".format(find_msg))
    # =============================================================

    # 切换上到上一级
    #driver.switch_to.parent_frame()

    # =========================获取嵌入的iframe====================
    a_frame = driver.find_elements(By.TAG_NAME, "iframe")
    print("当前界面共有:", len(a_frame), "个iframe")

    for i in range(len(a_frame)):
        driver.switch_to.frame(a_frame[i])  # 切换到下一个界面

        # 1.将内容写入text,方便手动定位
        file = open("第{}个iframe.txt".format(i), mode='w', encoding='utf-8')
        file.write(driver.page_source)
        file.close()
        # 2.直接判断,当前是否包含目标:
        if find_msg in driver.page_source:
            print("第{}个里,=====================>包含:{}".format(str(i), find_msg))
        else:
            print("第{}个里,不包含:{}".format(str(i), find_msg))

        # 切换上到上一级iframe,为下一次循环做准备
        driver.switch_to.parent_frame()
        # 再次获取iframe
        a_frame = driver.find_elements(By.TAG_NAME, "iframe")
    # =============================================================


if __name__ == '__main__':
    try:
        print("a键开始")
        keyboard.add_hotkey('a', test_a)  # 按 a 调用 test_a函数
        keyboard.wait()  # 循环监听
    except Exception as e:
        traceback.print_exc()
        input("回车键结束:")

selenium获取iframe,# 自动化办公,# 爬虫,python,学习,selenium

 当前界面没有,调整driver位置

selenium获取iframe,# 自动化办公,# 爬虫,python,学习,selenium

 二、元素定位

1.Xpath定位

selenium获取iframe,# 自动化办公,# 爬虫,python,学习,selenium

 2,.其他定位方式

三、防止定位、操作失败

获取元素、操作失败重复操作,直至操作成功。文章来源地址https://www.toymoban.com/news/detail-547545.html

while True:
	try:
        #等待X秒
		#定位元素,操作
		break
	except:
		continue

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

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

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

相关文章

  • python自动化测试selenium定位frame及iframe示例

    这篇文章主要为大家介绍了python自动化测试selenium定位frame及iframe示例的示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助 frame标签有frameset、frame、iframe三种,frameset和其它普通标签没有区别,不会影响正常定位,而frame与iframe对selenium定位而言是一样的。 Selenium有

    2024年01月20日
    浏览(44)
  • 从0开始python学习-31.selenium 文本输入框、下拉选择框、文件上传、时间插件选择元素定位

    目录 1. 纯文本输入框 2. 存在默认值的文本输入  3. 下拉选择框 4. 输入后下拉选择框 5. 文件上传 6. 时间插件 注意: 1. 这种存在默认值的情况在做自动化测试的时候可以选择不做处理,直接略过该元素,也可以先将默认值清除后再进行输入的方式进行测试 2.如果是下图这种

    2024年02月06日
    浏览(60)
  • Python - selenium-元素定位

    目录 一.前序工作 二.webdriver测试 三.元素定位方式    根据ID定位                a = wd.find_element(By.ID, \\\'值\\\') 根据NAME定位                 a = wd.find_element(By.NAME, \\\'值\\\') 根据CLASS_NAME定位            a = wd.find_element(By.CLASS_NAME, \\\'值\\\')   根据TAG_NAME定位      

    2024年02月01日
    浏览(76)
  • Python-selenium学习笔记-css选择元素

    方法名:find_element(By.CSS_SELECTOR, \\\"元素名\\\") find_elements找所有 示例: 执行结果:  代表寻找第一个类名为plant的元素, 等效于根据CLASS寻找元素 若要 根据tag名 寻找,不用加“.”, 直接写tag名称即可,如下: 结果:   根据id寻找用“#”+id名, 中间不能有空格 结果: 子元素是

    2024年03月23日
    浏览(44)
  • selenium学习之路1之元素定位

    参考视频:https://www.bilibili.com/video/BV1NM4y1K73T/?p=63spm_id_from=pageDrivervd_source=7963e4096d2b51e52877519dc0202e3e 此为链接 安装Python3编译器 安装Pycharm软件集成环境 安装selenium包:pip install selenium 安装浏览器 安装浏览器对应的WebDriver驱动程序(点击这里下载最新的驱动 ,驱动要放进要测试

    2024年03月08日
    浏览(48)
  • Python selenium元素的定位

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

    2024年02月08日
    浏览(43)
  • Python爬虫(7)selenium3种弹窗定位后点击操作,解决点击登录被隐藏iframe无法点击的登陆问题

    之前的文章有关于更多操作方式详细解答,本篇基于前面的知识点进行操作,如果不了解可以先看之前的文章 Python爬虫(1)一次性搞定Selenium(新版)8种find_element元素定位方式 Python爬虫(2)-Selenium控制浏览器 Python爬虫(3)-Selenium结合pywin32模拟键盘操作 Python爬虫(4)-Seleni

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

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

    2024年02月13日
    浏览(45)
  • 自学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)
  • 用selenium和xpath定位元素并获取属性值以及str字符型转json型

    页面html如图所示: 要使用xpath定位这个div元素,并且获取其属性data-config的内容值。  结果如图:  蓝色的为str类型,红色的为json类型。 那么先得到的是str类型,如何转换为json类型呢?使用如下代码即可。 import json json_attr=json.loads(str_attr) 读取json数据用json_attr[\\\'video\\\'][\\\'url\\\'

    2024年02月08日
    浏览(39)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包