Python selenium各个组件的操作

2023-10-27

(一)操作文本输入框

常用方法 说明
sendkeys() 设值
clear() 清空文本框内容
get_attribute() 获取文本框中的值
is_display() 判断元素是否显示

案例演示:

from time import sleep
from selenium import webdriver
driver = webdriver.Firefox(executable_path="F:\GeckoDriver\geckodriver")
driver.get("https://www.imooc.com/")
driver.implicitly_wait(10)

# 1.文本框设值
driver.find_element_by_class_name("search-input").send_keys("selenium")
sleep(3)

# 2.获取文本框中的值
str = driver.find_element_by_class_name("search-input").get_attribute("value")
print("=========="+str)

# 3.清空文本框中的值
sleep(3)
driver.find_element_by_class_name("search-input").clear()

(二)操作CheckBox

常用方法 说明
click() 点击checkbox
isEnable() 判断元素是否可以点击
isSelect() 判断元素是否选中
is_display() 判断元素是否显示

案例演示

from time import sleep
from selenium import webdriver
driver = webdriver.Firefox(executable_path="F:\GeckoDriver\geckodriver")
driver.get("https://www.imooc.com/")
driver.implicitly_wait(10)

driver.find_element_by_link_text("登录").click()
sleep(3)
element = driver.find_element_by_id("auto-signin")

# 1.判断元素是否显示
if element.is_displayed():
    print("元素已显示在页面")
print("元素未显示")

# 2.判断元素可点击
if element.is_enabled():
    print("元素可点击")
print("元素不可点击")

# 3.判断元素是否选中
if element.is_selected():
    print("元素已选中")
    sleep(3)
    print("取消已选中元素")
    element.click()

(三)操作redio、select

常用方法 说明
click() 点击redio
isEnable() 判断元素是否可以点击
isSelect() 判断元素是否选中
is_display() 判断元素是否显示
 select_by_value() value是select元素的value
 select_by_index() select列表中元素的索引
 select_by_visible_text() select列表下拉框的值

案例演示

from time import sleep
from selenium import webdriver
from selenium.webdriver.support.select import Select

driver = webdriver.Firefox(executable_path="F:\GeckoDriver\geckodriver")
driver.get("https://www.imooc.com/")
driver.implicitly_wait(10)

driver.find_element_by_link_text("登录").click()
sleep(3)

# 1.登录操作
driver.find_element_by_class_name("xa-emailOrPhone").send_keys(xxx)
driver.find_element_by_name("password").send_keys("xxx")
driver.find_element_by_css_selector('input[value="登录"]').click()
sleep(6)

driver.get("https://www.imooc.com/user/setprofile")
sleep(3)
driver.find_element_by_link_text("编辑").click()
sleep(3)
# 4.下拉框操作
formElememt = driver.find_element_by_id("profile")
elememt1 = formElememt.find_element_by_id("job")
Select(elememt1).select_by_value("18")

elememt2 = formElememt.find_element_by_id("province-select")
Select(elememt2).select_by_visible_text("湖南")


# 5.redio的使用
elememt3 = driver.find_element_by_xpath("(//input[@type='radio'])[5]")
if not elememt3.is_selected():
    elememt3.click()

#6.文本框
driver.find_element_by_xpath("(//textarea[@name='aboutme'])[2]").send_keys("123123123")


(四)操作button按钮

自动化用例编写有时候我们需要判断按钮是否可以点击,需要掌握按钮相关操作

方法 说明
click() 点击按钮
isEnable() 判断按钮是否可以点击

(五)frame/iframe多表单切换

方法 说明
switch_to_frame(element) 切换到iframe窗体
switch_to_default_content(element) 切换到最外层窗体

from time import sleep
from selenium import webdriver
driver = webdriver.Firefox(executable_path="F:\GeckoDriver\geckodriver")
driver.get("https://www.imooc.com/")
driver.implicitly_wait(10)

driver.find_element_by_link_text("登录").click()
sleep(3)

# 1.登录操作
driver.find_element_by_class_name("xa-emailOrPhone").send_keys(xxx)
driver.find_element_by_name("password").send_keys("xxx")
driver.find_element_by_css_selector('input[value="登录"]').click()
sleep(6)

driver.get("https://www.imooc.com/article/publish#")
sleep(3)

# 1.定位到iframe元素
element = driver.find_element_by_id("ueditor_0")
driver.switch_to_frame(element)
driver.switch_to_default_content()
driver.find_element_by_tag_name("body").send_keys("hello world")

(六)文件上传操作

(七)table操作

1.通过selenium定位方式(id、name、xpath等方式)定位table标签
#html源码<table border="5" id="table1" width="80%">#selenium操作代码table1=driver.find_element_by_id('table1')

2.获取总行数(也就是获取tr标签的个数)
#html源码<tr><th>姓名</th><th>性别</th></tr>#selenium操作源码
table_rows = table1.find_elements_by_tag_name('tr')

3.获取总列数(也就是tr标签下面的th标签个数)
#html源码<tr><th>姓名</th><th>性别</th></tr>#selenium操作源码:第一个tr标签下有多少个th
table_rows = table_rows[0].find_elements_by_tag_name('th')

4.获取单个cell值
#selenium操作源码:第一行第二列的text值row1_col2 = table_rows[1].find_elements_by_tag_name('td')[1].text

5.取值比对~

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python selenium各个组件的操作 的相关文章

  • 如何测试顶级窗口是否打开?

    我感觉 Python 编程可能不是我的菜 我创建了一个 tkinter GUI 它使用按钮回调来打开另一个窗口 其他搜索说这个窗口应该是顶级窗口 并且它工作得很好 但是每次按下按钮时它都会打开另一个相同的窗口 如据我所知 窗口 问题 如何测
  • 更改 Inkscape 的 Python 解释器

    在使用 Inkscape 时 我不断收到错误 这似乎意味着未满足 python 2 vs 3 的期望 尽管我已经安装了它们 例如 当我尝试从模板生成新文档时 我得到 Traceback most recent call last File
  • Python:多处理和请求

    以下是我正在运行的使用多处理并行触发 HTTP 请求的代码片段 在控制台上运行后 它挂在 requests get url 处 既不继续前进也不抛出错误 def echo 100 q print before r requests get
  • 错误只有 size-1 数组可以转换为 Python 标量

    我有这个代码 for a in data X for i in a if not i isdigit x hash i data X column row x row row 1 row 0 column column 1 desired
  • 使用 Flask SQLAlchemy 进行表(模型)继承

    我遵循了这个建议question https stackoverflow com questions 1337095 sqlalchemy inheritance但我仍然收到此错误 sqlalchemy exc NoForeignKeysE
  • 使用 python 通过搜索端点从 Spotify API 获取曲目

    因此 我尝试使用 API 的搜索端点进行搜索 从而从 Spotify API 获取曲目 请参阅文档 https developer spotify com documentation web api reference search sea
  • Keras,如何获取每一层的输出?

    我已经用 CNN 训练了一个二元分类模型 这是我的代码 model Sequential model add Convolution2D nb filters kernel size 0 kernel size 1 border mode
  • 01 无效令牌[重复]

    这个问题在这里已经有答案了 嘿 学习 python3有一段时间了 遇到字典和dictionary name get 方法并尝试获取随机键值 问题 data data get key 1 它有效并且返回 1 但如果我使用data get ke
  • 将 stdout 重定向到 Python 中的文件? [复制]

    这个问题在这里已经有答案了 如何将 stdout 重定向到 Python 中的任意文件 当长时间运行的 Python 脚本 例如 Web 应用程序 从 ssh 会话内启动并处于后台 并且 ssh 会话关闭时 应用程序将引发 IOError
  • 代理阻止网络套接字?如何绕行

    我有一个用 Python 编写的正在运行的 websocket 服务器 来自https github com opiate SimpleWebSocketServer https github com opiate SimpleWebSoc
  • 在 C# 中实例化 python 类

    我已经用 python 编写了一个类 我想通过 IronPython 将其包装到 net 程序集中 并在 C 应用程序中实例化 我已将该类迁移到 IronPython 创建了一个库程序集并引用了它 现在 我如何真正获得该类的实例 该类看起来
  • 将 JSON 字符串传递给 Django 模板

    我一直在用头撞墙 试图找出为什么我无法将从 Django 模型生成的 JSON 字符串传递到模板的 javascript 静态文件中 事实证明 问题不在模型级别 使用serializers serialize 在脚本本身中放入相同的字符串将
  • 检查对象数组中的多个属性匹配

    我有一个对象数组 它们都是相同的对象类型 并且它们有多个属性 有没有办法返回一个较小的对象数组 其中所有属性都与测试用例 字符串匹配 无论该属性类型是什么 使用列表理解all http docs python org 3 library f
  • 如何在Python中正确声明ctype结构+联合?

    我正在制作一个二进制数据解析器 虽然我可以依靠 C 但我想看看是否可以使用 Python 来完成该任务 我对如何实现这一点有一些了解 我当前的实现如下所示 from ctypes import class sHeader Structure
  • 如何在 Tkinter 的 Button 小部件中创建多个标签?

    我想知道如何在 Tkinter 中创建具有多个标签的按钮小部件 如下图所示 带有子标签的按钮 https i stack imgur com jOZRw jpg正如您所看到的 在某些按钮中有一个子标签 例如按钮 X 有另一个小标签 A 我试
  • Python:使用列表创建二叉搜索树

    我的代码的目标是从 txt 文件中获取每个单独的单词并将其放入列表中 然后使用该列表创建二叉搜索树来计算每个单词的频率 并按字母顺序打印每个单词及其频率 中的每个单词只能包含字母 数字 或 我无法用我的初学者编程知识来做的部分是使用我拥有的
  • tweepy 流到 sqlite 数据库 - 语法错误[重复]

    这个问题在这里已经有答案了 可能的重复 tweepy 流到 sqlite 数据库 语法无效 https stackoverflow com questions 9434205 tweepy stream to sqlite database
  • 在没有numpy的情况下在python中分配变量NaN

    大多数语言都有一个 NaN 常量 您可以使用它为变量分配值 NaN python 可以在不使用 numpy 的情况下做到这一点吗 是的 使用math nan https docs python org 3 library math html
  • 如何获取所有Python标准库模块的列表?

    我想要类似的东西sys builtin module names标准库除外 其他不起作用的事情 sys modules 只显示已经加载的模块 sys prefix 包含非标准库模块并且似乎无法在 virtualenv 内工作的路径 我想要这
  • 将笔记本生成的 HTML 片段转换为 LaTeX 和 PDF

    在我的笔记本里有时会有 from IPython display import display HTML display HTML h3 The s is important h3 question of the day 但当我后来将笔记本

随机推荐

  • 【MySQL】第一篇

    首先需要调出MySQL 5 7 Command Line Client 界面 开始 程序 MySQL MySQL 5 7 Command Line Client 启动 MySQL 5 7 Command Line Client 然后MySQ
  • 自媒体必备素材库,免费、商用,赶紧马住~

    自媒体经常需要用到各类素材 本期就给大家安利6个自媒体必备的素材网站 免费 付费 商用都有 建议收藏起来 1 菜鸟图库 https www sucai999 com video html v NTYwNDUx 菜鸟图库可以找到设计 办公 图
  • jmeter 获取全部响应_jmeter 获取响应头数据(Respones headers)

    最近遇到一个请求重定向 想要判断url 是否和预期一致 找了下有两种方法 一 用正则表达式提取器 1 想要提取如下图响应数据 正则表达是提取设置如下 二 beanshell 断言 该组件可以直接获取ResponseHeaders 底部显示如
  • 金山卫士开源软件之旅(十) KSafeMain工程的分析 1

    上一次看金山开源到现在已有一两个月了 期间看到QQ群里大家对它很是热情 最近有时间想看看金山的主界面工程KSafeMain 自己水平有限 总结的东西浅显 但还是愿意拿来与大家分享 希望对大家有帮助 转载请标明是引用于 http blog c
  • C#中的object类深入理解

    C 中所有的类都直接或间接继承自System Object类 这使得C 中的类得以单根继承 如果我们没有明确指定继承类 编译器缺省认为该类继承自System Object类 System Object类也可用小写的object关键字表示 两
  • 软工实习日记12

    今天的任务是新闻归档功能的实现 申请访问不存在的网站页面时使用准备的404界面隐藏错误信息 以及使用拦截器拦截管理员未登录时申请访问后台页面的请求 下面给出关键代码 service层 NewService java 接口文件 Map
  • LeetCode 2255. 统计是给定字符串前缀的字符串数目

    给你一个字符串数组 words 和一个字符串 s 其中 words i 和 s 只包含 小写英文字母 请你返回 words 中是字符串 s 前缀 的 字符串数目 一个字符串的 前缀 是出现在字符串开头的子字符串 子字符串 是一个字符串中的连
  • Android好用的轮播图控件

    于app开发 大部分都会涉及到轮播图 你也可以自己用viewpager自己写 这边介绍几种写好的库 1 ConvenientBanner 博客地址 2 infiniteindicatorlayout 点击打开链接 这是一个网上有人进行封装的
  • java form 上传文件_JAVA入门[16]-form表单,上传文件

    一 如何传递参数 RequestMapping detail public String detail RequestParam id int id Model model Category category new Category ca
  • nextcloud设置用户容量,设置用户配额

    先登录nextcloud管理员账号 然后找到用户 然后在左下角找到设置 然后在设置中设置对应的容量 设置完毕以后 所有用户 包括管理员 也会被设置为10g 自己手动改一改就好 嗯大概就是这样 然后如果你要设置某个用户的容量 点击一下笔 就能
  • threejs的dat.gui辅助工具的使用

    threejs的dat gui辅助工具的使用 安装 使用 安装 npm i dat gui S 使用 import dat from dat gui const controlData rotationSpeed 0 01 color 66
  • Tensorflow:介绍常见激活函数和池化,并用Tensorflow搭建前向神经网络

    Tensorflow 介绍常见激活函数和池化 并用Tensorflow搭建前向神经网络 一 常见激活函数和池化 1 激活函数 激活函数通常用于卷积层和全连接层的末端 为神经网络提供非线性变化 1 1 sigmoid S形曲线 早期用于卷积层
  • AN OVERVIEW OF LANGUAGE MODELS RECENT DEVELOPMENTS AND OUTLOOK

    LLM系列相关文章 针对 AN OVERVIEW OF LANGUAGE MODELS RECENT DEVELOPMENTS AND OUTLOOK 的翻译 语言模型综述 近年来的发展与展望 摘要 1 引言 2 语言模型的类型 2 1 结
  • 手动删除shmget创建的共享内存

    使用shmget创建或打开共享内存的时候 其中有一个参数是制定了权限的 这个权限类似于文件的权限 指定了什么身份可以打开已经存在的共享内存 在我的项目中出现了一个程序运行失败 经过调查发现在使用shmget打开一段共享内存的时候没有权限 造
  • win10家庭版计算机属性里没有远程桌面,win10家庭版不支持远程桌面怎么办_远程桌面无法连接的解决方法...

    众所周知 有些win系统的家庭版本是无法远程桌面连接的 而且在连接的时候会报错 如果重新安装系统十分麻烦 那么咱们要怎么解决这个部分Windows电脑无法远程桌面连接的问题呢 下面小编就来分享多种Win电脑系统无法远程桌面连接的正确解决方法
  • js页面初始化方法只调用一次_10个常见的JS语言错误总汇

    1 Uncaught TypeError Cannot Read Property这是 JavaScript 开发人员最常遇到的错误 当你读取一个属性或调用一个未定义对象的方法时 Chrome 中就会报出这样的错误 导致这个错误发生的原因有
  • 地图采集车的那些事

    一 背景 高精地图 高精采集车 是做地图和出行领域同学经常挂在嘴上的一些常用词儿 但是 圈外的同学可能会问 到底什么是高精 高精是指高精度定位 高精地图是指包含丰富地理信息数据 具有高精度坐标的地图 当然 高精采集车就是采集制作高精地图数据
  • Caffe源码中io文件分析

    Caffe源码 caffe version commit 09868ac date 2015 08 15 中有一些重要的头文件 这里介绍下include caffe util io hpp文件的内容 1 include文件 1
  • MySQL 的FLASHBACK 数据回滚

    数据库的里面的FLASHBACK 功能是一个让人刮目相看的功能 如果你做错了什么怎么能将那段时间的数据恢复 并且还让生产的应用不停止 这是一个数据库管理员都想拥有的功能 SQL SERVER 需要借助第三方软件的功能 可以完成数据的回滚和恢
  • Python selenium各个组件的操作

    一 操作文本输入框 常用方法 说明 sendkeys 设值 clear 清空文本框内容 get attribute 获取文本框中的值 is display 判断元素是否显示 案例演示 from time import sleep from