iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python——按键操作、时间等待、点击
  • 339
分享到

Python——按键操作、时间等待、点击

按键操作时间 2023-01-31 07:01:06 339人浏览 薄情痞子

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

摘要

一、按键操作        selenium提供了比较完整的按键操作,在使用按键操作之前引入包from selenium.WEBdriver.commen.keys import Keys,然后就可以模拟按键操作。以进入百度网页为例,进行

一、按键操作

       selenium提供了比较完整的按键操作,在使用按键操作之前引入包from selenium.WEBdriver.commen.keys import Keys,然后就可以模拟按键操作。以进入百度网页为例,进行具体的按键操作。


from selenium.webdriver.common.keys import Keys
from selenium import webdriver
import time
driver = webdriver.Firefox()
driver.get('Http://www.baidu.com')
time.sleep(3)
# 找到输入框并输入指定内容
driver.find_element_by_id('kw').send_keys('selenium')
# ctr + a 全选输入框内的全部内容
driver.find_element_by_id('kw').send_keys(Keys.CONTROL,'a')
time.sleep(3)
# ctr + x 剪切输入框内的内容
driver.find_element_by_id('kw').send_keys(Keys.CONTROL,'x')
time.sleep(2)
# 搜索爬虫技巧
driver.find_element_by_id('kw').send_keys(u'爬虫技巧')
time.sleep(2)
# 点击搜索按钮
driver.find_element_by_id('su').click()
time.sleep(6)
# 退出浏览器
driver.quit()

二、时间等待

       selenium由网页驱动驱使浏览器进行操作,速度慢是一大特点,经常会出现代码执行完了,但是网页还没有加载完毕;如果这个时候操作里面的标签报出异常NoSuchElementException,解决的办法是时间休眠time.sleep()。

       引入一个网页等待的包from selenium.webdriver.support.ui import WebDriverWait


from selenium.webdriver.support.ui import WebDriverWait
from selenium import webdriver
driver = webdriver.Firefox()
driver.get('http://www.baidu.com')
# 在搜索框内输入helloworld
# driver.find_element_by_id('kw').send_keys('hello wolrd')
button = driver.find_element_by_id('su')
# WebDriverWait 网页等待 值1:等待的对象  值2:等待的时间
# WebDriverWait 经常和until not 一起使用 until直到
# lambda 匿名函数  is_displayed是否已经显示
is_visible = WebDriverWait(driver,10).until(lambda driver : button.is_displayed())
print(is_visible)
button.click()

     WebDriverWait()和time.sleep()的区别:(1)都是让程序等待指定执行的时间(2)time的时间是固定的,时间长短不会随着标签的加载速度而改变;WebDriverWait时间是固定的,等待多少时间要看标签的加载时间和指定的固定时间(3)如果在指定时间内,标签仍然没有加载出来,那么time和WebDriverWait都会报出异常。

三、点击事件

     首先引入包from selenium.webdriver.common.action_chains import ActionChains

     以点击百度loGo为例:


from selenium import webdriver
# action行动 chains链
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support.ui import WebDriverWait
import time
driver = webdriver.Firefox()
driver.get('http://www.baidu.com')
# 找到百度logo的三种方法
# logo = driver.find_element_by_class_name('index-logo-src')

logo = driver.find_element_by_xpath('//div[@id="lg"]/img')

# logo = driver.find_element_by_CSS_selector('#Id > img')

# 等待直到标签出现
WebDriverWait(driver,10).until(lambda driver : logo.is_displayed())
# 单击事件
# ActionChains(driver).click(logo).perfORM()
# 双击事件
ActionChains(driver).double_click(logo).perform()
# context 上下文  context_click 
# 右击事件
action = ActionChains(driver).context_click(logo)

# 操作时间会跑到perform队列里面 perform实现
action.perform()
#time.sleep(5)

# 鼠标移动
more = driver.find_element_by_class_name('bri')
WebDriverWait(driver,10).until(lambda driver : more.is_displayed())
ActionChains(driver).move_to_element(more).perform()

四、标签选择

       引入一个包from selenium.webdriver.common.by import By

       建一个html文件


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <button id="red" class="red" οnclick="fun1()">按钮1</button>
    <button type="button" name="username" οnclick="fun2()">按钮2</button>
    <button type="button" οnclick="fun3()">按钮3</button>
    <button id="pink" οnclick="fun4()">按钮4</button>
    <script>
        function fun1() {
            document.body.style.backgroundColor = 'red'
        }
        function fun2() {
            document.body.style.backgroundColor = 'green'
        }
        function fun3() {
            document.body.style.backgroundColor = 'blue'
        }
        function fun4() {
            document.body.style.backgroundColor = 'pink'
        }
    </script>
</body>
</html>

       通过这些标签进行相关操作


from selenium import webdriver
from selenium.webdriver.common.by import By
import os
import time
driver = webdriver.Firefox()
driver.get('file:///' + os.path.abspath('4.index.html'))
# 通过标签名字来找到指定的标签
btns = driver.find_elements_by_tag_name('button')
print(btns)

       找到任意标签的四种方式


# 1.通过索引来找到指定的标签
btns[1].click()
for btn in btns :
    #2.通过属性来找到指定的标签
    # 根据按钮属性点击 首先是一个button,然后name属性是username
    if btn.get_attribute('name') == 'username':
        btn.click()
    time.sleep(3)
    btn.click()

# 找到的是第一个按钮
driver.find_element_by_tag_name('button').click()
# find_element_by_XX通过XX来找到所有标签当中的第一个标签
# find_elements_by_XX通过XX来找到所有符合的标签

# 3.弹出指定元素 如果不写索引 默认为最后一个
driver.find_elements_by_css_selector('button').pop(2).click()

# [type=button] []里面为限制条件 限制选择的内容
driver.find_elements_by_css_selector('button[type="button"]').pop().click()
# 4.通过...来找到指定的标签 by=By.XX
driver.find_element(by=By.ID,value='pink').click()

 

--结束END--

本文标题: Python——按键操作、时间等待、点击

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python——按键操作、时间等待、点击
    一、按键操作        selenium提供了比较完整的按键操作,在使用按键操作之前引入包from selenium.webdriver.commen.keys import Keys,然后就可以模拟按键操作。以进入百度网页为例,进行...
    99+
    2023-01-31
    按键 操作 时间
  • python时间操作
      #!/usr/bin/python # -*- coding:utf8 -*- import time,datetime Atime=time.time() ##获取本地时间戳 print Atime print time.strfti...
    99+
    2023-01-31
    操作 时间 python
  • python 等待一定时间后继续执行其后
    简单示例:   import time print '11' time.sleep(10) print '22'   先打印11,等待10秒后,打印22 ...
    99+
    2023-01-31
    时间 python
  • Python异步怎么使用等待有时间限制协程
    本文小编为大家详细介绍“Python异步怎么使用等待有时间限制协程”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python异步怎么使用等待有时间限制协程”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。我们可以使...
    99+
    2023-07-05
  • Python 异步如何使用等待有时间限制协程
    目录正文1. 什么是 Asyncio wait_for()2. 如何使用 Asyncio wait_for()3. 带有超时的 Asyncio wait_for() 示例正文 我们...
    99+
    2023-03-22
    Python 异步时间限制协程 Python 异步协程等待
  • Python 时间操作time详情
    目录1. time 概述2. 格式化时间字符串3. time 结构化4. time 相关方法5.实操6.总结前言: 我们在日常生活中,都离不开时间和日期。不仅我们的汉字都有大量描述时...
    99+
    2024-04-02
  • Python 时间操作datetime详情
    目录1. datetime 模块概述2. datetime 组成部分3. datetime 常量4. datetime 常用方法5、实操6、总结复习回顾: Python 在对时间操作...
    99+
    2024-04-02
  • Python时间操作datetime详情(下)
    目录1. datetime.date 类1.1datetime.date 类格式1.2datetime.date类方法和属性2. datetime.time 类2.1datetime...
    99+
    2024-04-02
  • unity中点击某一个按钮播放某一个动作的操作
    1.创建动画控制器,双击打开动画控制器,创建 状态并添加动画片段,并且状态与状态之间进行连线,往返的都要有,在Animator的左上角–Parameters–点击加±-Trigger...
    99+
    2024-04-02
  • Oracle中怎么获取系统当前时间等操作
    这篇文章给大家分享的是有关Oracle中怎么获取系统当前时间等操作的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。获取系统当前时间date类型的select s...
    99+
    2024-04-02
  • 实时操作系统:当时间成为关键,操作系统如何应对?
    实时操作系统(RTOS)是一种专门为满足实时应用程序需求而设计的操作系统。实时应用程序对时间要求非常严格,必须在规定的时间内完成任务,否则就会导致灾难性后果。因此,实时操作系统必须能够保证任务在规定的时间内执行,并提供必要的机制来控制和...
    99+
    2024-02-03
    文章实时操作系统 任务调度 中断处理 内存管理 定时器 信号量 消息队列 任务通信 任务同步
  • Python中时间操作datetime怎么用
    小编给大家分享一下Python中时间操作datetime怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Python 在对时间操作内置库提供了time模块和d...
    99+
    2023-06-21
  • Python中时间操作time怎么用
    这篇文章主要介绍了Python中时间操作time怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1. time 概述计算机网络时间是以UNIX元年1970年1月1日0点开...
    99+
    2023-06-21
  • python实现打开手机app并点击操作
    目录第一部分:打开应用第一步:安装Android SDK第二步:调试手机,连接电脑第三步:寻找应用入口,重中之重,决定后续能否继续进行第四步:启动该应用第二部分:app元素定位第一步...
    99+
    2024-04-02
  • Vue实现点击按钮下载文件的操作代码(后端Java)
    上篇文章给大家介绍过vue实现点击按钮下载文件功能,今天继续vue点击按钮下载文件的话题。 最近项目中需要实现点击按钮下载文件的需求,前端用的vue,因为文件是各种类型的,比如图片、...
    99+
    2024-04-02
  • python 包实现 time 时间管理操作
    目录一、当前时间戳二、获取当前时间字符串三、获取当前计算机时间格式四、格式化时间显示五、字符串转为计算机格式六、精确时间计数值七、休眠等待一、当前时间戳 获取当前时间戳,即当前系统内...
    99+
    2024-04-02
  • Python获取时间的操作示例详解
    目录获得当前时间时间戳获取当前时间获取昨天日期生成日历计算每个月天数计算3天前并转换为指定格式获取时间戳的旧时间获取时间并指定格式pandas 每日一练21读取本地EXCEL数据22...
    99+
    2024-04-02
  • python修改操作系统时间的方法
    时间:2015-07-07 14:03 来源:网管之家整理 字体:[大 中 小] 评论:0 本文实例讲述了python修改操作系统时间的方法。分享给大家供大家参考。具体实现方法如下: #-*- coding:utf-8 -...
    99+
    2023-01-31
    操作系统 时间 方法
  • python 时间 T 去掉 带上ms 毫秒 时间格式的操作
    我就废话不多说了,大家还是直接看代码吧~ import datetime # 时间格式 .%f 毫秒 ## "%Y-%m-%dT%H:%M:%S.%f" # 格式 秒 ## "%...
    99+
    2024-04-02
  • python怎么实现打开手机app并点击操作
    本文小编为大家详细介绍“python怎么实现打开手机app并点击操作”,内容详细,步骤清晰,细节处理妥当,希望这篇“python怎么实现打开手机app并点击操作”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。第一部...
    99+
    2023-06-30
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作