返回顶部
首页 > 资讯 > 后端开发 > Python >python-selenum3 第六天—
  • 831
分享到

python-selenum3 第六天—

第六天python 2023-01-31 05:01:35 831人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

1.循环遍历所有的下拉列表值2.单选下拉列表3.多选择列表的选中与取消4.操作单选框、多选框以及断言及全部选中5.断言页面源码中的关键字6.截屏7.拖拽页面元素 1. 循环遍历所有的下拉列表值 <!--练习的html-->

1.循环遍历所有的下拉列表值
2.单选下拉列表
3.多选择列表的选中与取消
4.操作单选框、多选框以及断言及全部选中
5.断言页面源码中的关键字
6.截屏
7.拖拽页面元素


1. 循环遍历所有的下拉列表值

   <!--练习的html-->
     学历:<select id="zz" name="ss" size="1">
                   <option value ="you">幼儿园</option>
                   <option value ="xiao">小学</option>
                   <option value ="chu">初中</option>
                   <option value ="gao">高中</option>
                   <option value ="da">大学</option>
              </select>
from selenium import WEBdriver
#导入select模块
from selenium.webdriver.support.select import Select
driver  = webdriver.Firefox(executable_path="d:\\geckodriver")
url = "file:///d:/day8.html"
driver.get(url)
#定位下拉菜单
select_element = driver.find_element_by_id("zz")
#将所有的内容保存并赋值给options   注意这里是所有元素 所以用elements
options = select_element.find_elements_by_tag_name("option")
#循环显示加打印
for option in options:
    print("选项显示的文本:",option.text)
    print("选项值为:",option.get_attribute("value"))
    option.click()
    import time
    time.sleep(1)

2.单选下拉列表

from selenium import webdriver
from selenium.webdriver.support.select import Select
driver  = webdriver.Firefox(executable_path="E:\\geckodriver.exe")
driver.get("file:///d:/day8.html")
#定位下拉菜单
xiala = driver.find_element_by_id("zz")
#通过序号选择,序号从0开始,2为初中
Select(xiala).select_by_index(2)
#通过value属性值选择,选择高中
Select(xiala).select_by_value("gao")
#通过文本值选择,直接选择大学
Select(xiala).select_by_visible_text(u"大学")

3.多选择列表的选中与取消

   <!--练习的html-->
             学历:<select id="zz" name="ss" size="6" multiple="true">
                   <option value ="you">幼儿园</option>
                   <option value ="xiao">小学</option>
                   <option value ="chu">初中</option>
                   <option value ="gao">高中</option>
                   <option value ="da">大学</option>
              </select>
from selenium import webdriver
from selenium.webdriver.support.select import Select
driver  = webdriver.Firefox(executable_path="E:\\geckodriver.exe")
driver.get("file:///d:/day8.html")
#定位下拉菜单
xiala = driver.find_element_by_id("zz")
#多选后为选择初中、高中、大学
Select(xiala).select_by_index(2)
Select(xiala).select_by_value("gao")
Select(xiala).select_by_visible_text(u"大学")
#取消已经选择的内容(下面简写了,比选择多加了个de而已,最后一个是取消所有已经选中)
Select(xiala).deselect_by_index(2)
Select(xiala).deselect_by_value("gao")
Select(xiala).deselect_by_visible_text(u"大学")
Select(xiala).deselect_all()

4.操作单选框、多选框以及断言及全部选中

   <!--练习的html-->

      <!--单选--> <p>
             性别:男<input type="radio" name="r1" checked/>
                   女<input type="radio" name="r1" />
                   不明<input type="radio" name="r1" />
           </p>
    <!--多选-->  <p>
             爱好:游戏<input type="checkbox" name="c1" checked/>
                   文艺<input type="checkbox" name="c2" />
                   睡觉<input type="checkbox" name="c3" />
           </p>
from selenium import webdriver
driver  = webdriver.Firefox(executable_path="E:\\geckodriver.exe")
driver.get("file:///d:/day8.html")
#最简单的单选和多选,直接点击选择框即可 下面为单选女的选择点击
xuanzhong = driver.find_element_by_xpath("/html/body/fORM/p[2]/input[2]")
xuanzhong.click()
#断言是否被选中(选择需要配合框架使用)
assertTrue(xuanzhong.is_selected(),u"女没有被选中")
#一次性将所有的多选选项全部选择(一定要注意因为一次性多选所以是elements)
#注意:因为游戏是默认,所以在次点击等于取消了选择,下面结果为选中文艺和睡觉
duoxuan = driver.find_elements_by_xpath(".//*[@type='checkbox']")
for i in duoxuan:
    i.click()

5.断言页面源码中的关键字

from selenium import webdriver
driver  = webdriver.Firefox(executable_path="E:\\geckodriver.exe")
driver.get("https://www.baidu.com")
driver.find_element_by_id("kw").send_keys("WIKTK")
driver.find_element_by_id("su").click()
import time
time.sleep(4)
#断言页面源码中的关键字
assert "WIKTK" in driver.page_source, u"页面中源码中不存在该关键字"

6.截屏

from selenium import webdriver
driver  = webdriver.Firefox(executable_path="E:\\geckodriver.exe")
driver.get("Https://www.baidu.com")
driver.save_screenshot(r"d:\截图.png")

7.拖拽页面元素

http://Jqueryui.com/resources/demos/draggable/scroll.html
from selenium import webdriver
driver = webdriver.Firefox(executable_path="E:\\geckodriver.exe")
driver.get("http://jqueryui.com/resources/demos/draggable/scroll.html")
#定位第一、第二、第三拖动框体
yi = driver.find_element_by_id("draggable")
er = driver.find_element_by_id("draggable2")
san = driver.find_element_by_id("draggable3")

#导入拖拽元素方法模块
from selenium.webdriver import ActionChains

a_chains = ActionChains(driver)
#第一个框拖动到第二个框
a_chains.drag_and_drop(yi, er).perform()
#将第三个框平移500
a_chains.drag_and_drop_by_offset(san,500, 0).perform()

--结束END--

本文标题: python-selenum3 第六天—

本文链接: https://lsjlt.com/news/188556.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • python-selenum3 第六天—
    1.循环遍历所有的下拉列表值2.单选下拉列表3.多选择列表的选中与取消4.操作单选框、多选框以及断言及全部选中5.断言页面源码中的关键字6.截屏7.拖拽页面元素 1. 循环遍历所有的下拉列表值 <!--练习的html-->...
    99+
    2023-01-31
    第六天 python
  • python-selenum3 第三天基
    打开网页并验证 #验证网页 #打开火狐 driver = webdriver.Firefox(executable_path = "d:\\geckodriver") #将地址赋值给变量fURL fURL = "https://www.ba...
    99+
    2023-01-31
    天基 python
  • python-selenum3 第一天所
    下载需要selenium所有的工具 1.python-3.6.5-amd64.exe2.pip-10.0.13.pycharm-professional-2018.1.4.exe4.geckodriver.exe python的话 个人系统...
    99+
    2023-01-31
    python
  • python-selenum3 第五天定
    使用tag来定位tag定位的是标签,不常用例如:百度的输入框标签是input最终会报错,因为百度首页input标签太多了 driver = webdriver.Firefox(executable_path="d:\\geckodrive...
    99+
    2023-01-31
    第五天 python
  • python-selenum3 第四天定
    如果把写用例当做是手工测试,那么UI级自动化就是将手工测试变成计算器自动执行的测试 将手工的顺序变成自动运行。手工测试如果就是点点点,那么只要找到元素,我们操作即可 元素的定位分很多,常用的如:id name class 对应的by.id...
    99+
    2023-01-31
    第四天 python
  • python-selenum3 第二天启
    启动浏览器1.火狐2.IE3.谷歌 在第一天创建的项目上,创建文件夹和python文件在项目上右键New一个文件夹,在文件夹下new一个python File即可新建python File的时候需要输入名字 温馨提示:请避免关键字 输入引库...
    99+
    2023-01-31
    天启 python
  • python爬虫第六天
        今天继续学习一些实战爬虫   链接爬虫实战       要求:把一个网页里所有的链接地址提取出来     思路:(1)确定爬取的入口链接               (2)构建提取链接的正则表达式            ...
    99+
    2023-01-30
    爬虫 第六天 python
  • 第六天MySQL
    DDL语言库与表的管理(创建、修改、删除)、一些常见的数据类型(整形、浮点|定点、日期,字符)   2020 5/9   二十二、DDL(数据定义语言)->用于库和表的管理 一、 库的管理 a)    ...
    99+
    2021-10-26
    第六天MySQL
  • python3第六天(数据结构)
    python3列表:    列表是可修改。    列表可以当作栈来使用(先进后出),利用append()和pop()方法。    列表也可以当队列来使用,利用popleft()方法。    列表推导式:对某个序列的所有元素依次进行...
    99+
    2023-01-31
    数据结构 第六天
  • 【Python之旅】第六篇(六):Pyt
        关于进程与线程的对比,下面的解释非常好的说明了这两者的区别:    这里主要说明关于Python多进程的下面几点:1.多进程的使用方法 2.进程间的通信之multiprocessing.Manager()使用 3.Python进程池...
    99+
    2023-01-31
    之旅 第六篇 Python
  • Python之路【第六篇】:Python
    一、迭代器 1、迭代的概念 #迭代器即迭代的工具,那什么是迭代呢? #迭代是一个重复的过程,每次重复即一次迭代,并且每次迭代的结果都是下一次迭代的初始值 代码如下: while True: print('==========&...
    99+
    2023-01-31
    之路 第六篇 Python
  • 第六篇:python中numpy.zer
    用法:zeros(shape, dtype=float, order='C') 返回:返回来一个给定形状和类型的用0填充的数组; 参数:shape:形状 dtype:数据类型,可选参数,默认numpy.float64 dtype类型: t...
    99+
    2023-01-30
    第六篇 python zer
  • java基础的详细了解第六天
    目录1、this关键字1.1 “this.属性”表示本类属性1.2“this”表示调用本类方法1.3“this”表示当前对象1.4引用传递进阶分析1.5对象比较1.6引用传递实际应用...
    99+
    2024-04-02
  • python第4天
    1.while通过except实现可迭代2.2range在py3和py2的区别3.凡是带有yield的函数就一个生成器函数4.生成器函数执行的条件next5.使用生成器监听文件操作6.生成器触发需要先next再send7.如何从生成器中取值...
    99+
    2023-01-31
    python
  • python 第3天
    class Hotdog:    def __init__(self):  #初始化对象        self.cooked_level = 0        self.cooked_string ="Raw"        self.c...
    99+
    2023-01-31
    python
  • Python第二天
    bytes和str之间的转化编码与解码del根据索引删奇数位所对应的元素find通过元素找索引fromkeys多个key的值是一个index通过元素找索引找不到会报错sort从大到小排序按最小元素删除并按最小元素依次添加遍历所有key从前往...
    99+
    2023-01-31
    第二天 Python
  • python 第2天
    import easygui,randomsecret = random.randint(1,99)easygui.msgbox("""I have a secret ,It is a number from 1-99 ,you have ...
    99+
    2023-01-31
    python
  • Python第三天
    python操作文件之读 打开后如何关闭 python操作文件默认动作是读 在打开文件时有时候需要转义 打开文件时文件绝对路径转义方法 相对路径打开文件 非文字类型的文件读操作rb 按行读取 将每一行当成列表的每一个元素 大...
    99+
    2023-01-31
    Python
  • 【Python之旅】第六篇(三):Pyt
        学习Python的多线程(Multi-threading),至少应该要有进程与线程的基本概念,可以看我转载的一篇文章:《进程与线程的一个简单解释》。    在前面使用Python Socket来编写简版SSH程序的时候,其实已经有使...
    99+
    2023-01-31
    之旅 第六篇 Python
  • 【Python之旅】第六篇(四):Pyt
        在多线程程序执行过程中,为什么需要给一些线程加锁以及如何加锁,下面就来说一说。1.给线程加锁的原因    我们知道,不同进程之间的内存空间数据是不能够共享的,试想一下,如果可以随意共享,谈何安全?但是一个进程中的多个线程是可以共享这...
    99+
    2023-01-31
    之旅 第六篇 Python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作