精华内容
下载资源
问答
  • python浏览器自动化操作
    千次阅读
    2021-02-01 12:50:11

    python的语法精炼简洁,并且很方便集成自动化工具selenium,因此特别适合各个行业的工作人员学习和编写简单程序来实现“机器人助理”帮我们处理频繁重复的网站操作。

    废话不多说,直接上代码,下面为了帮助非IT从业者更方便的了解python语法规则,使用一个demo程序来进行一个简单的自动化入门。

    环境要求:安装python3.7或更高版本的SDK,至于代码编辑器可以自行网上搜索,我使用的是Intellij IDEA,这个是付费的,当然网上也有破解方式。

    实现功能:访问证监会网站,自动输入公司名称,等待查询结果出来之后,滚动屏幕到最合适的地方,然后截图并将图片保存到本地。(金融从业者,如券商承做经理,可能经常需要做这类事情)

    实现代码及相应的代码讲解(直接将以下代码复制到一个test.py文件中即可运行,注意运行的时候如果提示找不到xxx模块,就先pip install一下):

    #从selenium(一个第三方自动化开源插件)引入webdriver模块(注意首字母小写一般是模块,首字母大写表示类,一个模块可以包含多个类),用来控制浏览器
    from selenium import webdriver
    #从selenium(一个第三方自动化开源插件)的webdriver模块的common子模块的keys中引入Keys类,这个类中有很多常量可以直接使用
    from selenium.webdriver.common.keys import Keys
    #引入python自带的时间模块,用来处理日期和时间
    import time
    #从PIL(一个第三方的图像处理插件)中引入ImageGrab类,用来截取和保存图片
    from PIL import ImageGrab
    #从pymouse(python鼠标操作的插件)中引入所有类,用来处理鼠标事件
    from pymouse import *
    #从pymouse(python键盘操作的插件)中引入所有PyKeyboard类,用来处理键盘事件
    from pykeyboard import PyKeyboard
    
    #实例化鼠标对象,可以进行鼠标的相关操作
    ms = PyMouse()
    #实例化键盘对象,可以进行键盘相关的操作
    kb = PyKeyboard()
    
    #加载Chrome web驱动,会打开一个Chrome浏览器
    browser = webdriver.Chrome(r'C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe')
    #定义一个变量companyname,来接收用户输入的公司名称。控制台会提示要用户输入公司全称...
    companyname = input('输入要查询的公司名称:')
    
    #用浏览器打开一个链接,这里是证监会网站,如果想截取其他网站,可以更改URL
    browser.get('http://www.csrc.gov.cn/pub/newsite/')
    #将浏览器窗口最大化,方便截屏
    browser.maximize_window()
    #证监会网站的输入框的ID是“schword”,那我们就根据schword先找到这个元素,并将这个元素(对象)命名为searchBar
    #如果是其他网站,搜索框的ID就不是这个了,也可能没有ID,需要根据class查找
    searchBar = browser.find_element_by_id('schword')
    #因为证监会网站的输入框需要先点击一下,原来的文本才会消失,所以我们要先click一下
    searchBar.click()
    #在输入框中输入公司全称,并点击回车键
    searchBar.send_keys(companyname + Keys.ENTER)
    #等待三秒钟,等搜索结果出来
    time.sleep(3)
    #点击5次向下键,将浏览器中的搜索结果滑动到适合截屏的地方
    for i in range(5):
        kb.tap_key(kb.down_key)
    
    #按住Ctrl键(不松手)
    kb.press_key(kb.control_key)
    #鼠标滚轮向下滚动,Ctrl+滚轮向下表示画面缩放,这里-100会缩放到80%后停止,这样可以截取更多的文字
    ms.scroll(-100, 0)
    #松开Ctrl键
    kb.release_key(kb.control_key)
    
    #等待三秒钟,等待缩放完成
    time.sleep(3)
    
    #设置图片路径(包含名称),注意由于这里是放在与test.py相同目录,所以不用设置父路径,直接定义名称,名称的格式可以自己定义
    picturename = companyname + '  '+u'中国证监会'+'.jpg'
    #截屏,将图片对象命名为image
    image = ImageGrab.grab()
    #调用图片对象的save方法,传入图片路径,这个方法会把图片保存在设置的路径中
    image.save(picturename)
    
    #关闭浏览器窗口
    browser.close()
    #退出浏览器
    browser.quit()

     

    更多相关内容
  • 使用python+selenium实现浏览器自动化登录和识别验证码,无需人工操作
  • 今天小编就为大家分享一篇Python利用splinter实现浏览器自动化操作方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 浏览器自动化程序 virtualenv virtualenv 1 virtualenv简介 是专门用来为应用程序维护多套相互“隔离”的Python运行环境的工具,借助 virtualenv我们可以在一台主机上创建多套相互隔离的Python运行环境。所以呢...

    浏览器自动化程序

    virtualenv

    • virtualenv

    1 virtualenv简介
    是专门用来为应用程序维护多套相互“隔离”的Python运行环境的工具,借助 virtualenv我们可以在一台主机上创建多套相互隔离的Python运行环境。
    所以呢需要下载好我已经配置好的虚拟环境才能正常运行下面的程序。
    2 .virtualenv的配置
    python环境是python3.7,需要用到的库文件pyqt5,pyqt5-tools,playwright,os
    浏览器的驱动文件
    如果已经安装了python环境,则直接执行 python -m playwright install,否则需要先进入虚拟环境再执行上面的命令。

    使用教程

    1. 在百度网盘下载virtualenv环境和exe程序,解压,里面有两个文件
      haha
    2. 按照路径新建文件夹D:\python\virtualenv\(必须一模一样),因为我用的配置有些是绝对路径,不然读不到配置文件。把demo文件放到这个目录下
    3. 最后打开main.exe就能使用了
      在这里插入图片描述

    1录制自动化脚本,只要输入对应的网址和浏览器(现在只支持谷歌),点击star按键即可,后续更新会解决这个问题(调试的时候火狐,webkit等有一定的bug)。然后就可以按照自己的想法录制步骤,右边是自动生成的python代码。录制完成后就可以关闭浏览器。最后就会生成一个code.txt文件。

    在这里插入图片描述

    2运行脚本。首先把生成的code文件的后缀改为py,然后在脚本输入框输入**py文件的绝对路径 **,点击start__script。就会执行自动化脚本

    上代码

    """
    brower.py文件
    """
    # -*- coding: utf-8 -*-
    
    # Form implementation generated from reading ui file 'brower_automation.ui'
    #
    # Created by: PyQt5 UI code generator 5.15.4
    #
    # WARNING: Any manual changes made to this file will be lost when pyuic5 is
    # run again.  Do not edit this file unless you know what you are doing.
    
    from PyQt5 import QtCore, QtGui, QtWidgets
    import os
    
    
    class Ui_MainWindow(object):
        def __init__(self):
            self.url = "www.baidu.com"
    
        def setupUi(self, MainWindow):
            MainWindow.setObjectName("MainWindow")
            MainWindow.resize(563, 326)
            self.centralwidget = QtWidgets.QWidget(MainWindow)
            self.centralwidget.setObjectName("centralwidget")
    
            self.label = QtWidgets.QLabel(self.centralwidget)
            self.label.setGeometry(QtCore.QRect(270, 10, 301, 101))
            self.label.setObjectName("label")
    
            self.pushButton = QtWidgets.QPushButton(self.centralwidget)
            self.pushButton.setGeometry(QtCore.QRect(120, 70, 101, 21))
            self.pushButton.setObjectName("pushButton")
            self.pushButton.clicked.connect(self.start_PushBotton)
    
            self.radioButton = QtWidgets.QRadioButton(self.centralwidget)
            self.radioButton.setGeometry(QtCore.QRect(30, 90, 89, 16))
            self.radioButton.setObjectName("radioButton")
            self.radioButton_2 = QtWidgets.QRadioButton(self.centralwidget)
            self.radioButton_2.setGeometry(QtCore.QRect(30, 70, 89, 16))
            self.radioButton_2.setObjectName("radioButton_2")
            self.radioButton_3 = QtWidgets.QRadioButton(self.centralwidget)
            self.radioButton_3.setGeometry(QtCore.QRect(30, 50, 89, 16))
            self.radioButton_3.setObjectName("radioButton_3")
            self.radioButton_3.setChecked(True)
    
            self.ShowText = QtWidgets.QTextBrowser(self.centralwidget)
            self.ShowText.setGeometry(QtCore.QRect(20, 210, 521, 111))
            self.ShowText.setObjectName("ShowTesx")
            self.ShowText.setPlaceholderText("""Prompt information:
        open page and generate code for user actions
        Options:
            -o, --output <file name>  saves the generated script to a file
            --target <language>       language to use, one of javascript, python, python-async, csharp (default: "python")
            -h, --help                display help for command
    
    
        Status operation information:
        """)
    
            self.Show_Label = QtWidgets.QLabel(self.centralwidget)
            self.Show_Label.setGeometry(QtCore.QRect(240, 180, 101, 31))
            self.Show_Label.setObjectName("Show_Label")
    
            self.scrupt_a = QtWidgets.QLabel(self.centralwidget)
            self.scrupt_a.setGeometry(QtCore.QRect(30, 150, 101, 31))
            self.scrupt_a.setObjectName("scrupt_a")
            self.script_lineEdit = QtWidgets.QLineEdit(self.centralwidget)
            self.script_lineEdit.setGeometry(QtCore.QRect(100, 155, 200, 20))
            self.script_lineEdit.setObjectName("script_lineEdit")
            self.scriptButton = QtWidgets.QPushButton(self.centralwidget)
            self.scriptButton.setGeometry(QtCore.QRect(350, 155, 101, 21))
            self.scriptButton.setObjectName("scriptButton")
            self.scriptButton.clicked.connect(self.start_script)
    
            self.url = QtWidgets.QLabel(self.centralwidget)
            self.url.setGeometry(QtCore.QRect(30, 20, 51, 21))
            self.url.setObjectName("url")
            self.url_lineEdit = QtWidgets.QLineEdit(self.centralwidget)
            self.url_lineEdit.setGeometry(QtCore.QRect(90, 20, 141, 21))
            self.url_lineEdit.setObjectName("url_lineEdit")
            self.url_lineEdit.setPlaceholderText("https://www.baidu.com/")  # 默认显示
    
            self.brower = QtWidgets.QLabel(self.centralwidget)
            self.brower.setGeometry(QtCore.QRect(30, 120, 54, 16))
            self.brower.setObjectName("brower")
            self.brower_lineEdit = QtWidgets.QLineEdit(self.centralwidget)
            self.brower_lineEdit.setGeometry(QtCore.QRect(90, 120, 141, 21))
            self.brower_lineEdit.setObjectName("brower_lineEdit")
            self.brower_lineEdit.setPlaceholderText("默认开启的是谷歌浏览器")
    
            MainWindow.setCentralWidget(self.centralwidget)
            self.statusbar = QtWidgets.QStatusBar(MainWindow)
            self.statusbar.setObjectName("statusbar")
            MainWindow.setStatusBar(self.statusbar)
    
            self.actionpyton = QtWidgets.QAction(MainWindow)
            self.actionpyton.setObjectName("actionpyton")
            self.actionyes = QtWidgets.QAction(MainWindow)
            self.actionyes.setObjectName("actionyes")
            self.actionno = QtWidgets.QAction(MainWindow)
            self.actionno.setObjectName("actionno")
    
            self.retranslateUi(MainWindow)
            QtCore.QMetaObject.connectSlotsByName(MainWindow)
            self.get_url()
    
        def retranslateUi(self, MainWindow):
            _translate = QtCore.QCoreApplication.translate
            MainWindow.setWindowTitle(_translate("MainWindow", "浏览器自动化"))
            self.label.setText(_translate("MainWindow",
                                          "<html><head/><body><p>注意事项:</p><p>1.必须有python3.7+的环境</p><p>2.安装Chromiun、Firefox、Webkit等浏览器的环境</p><p><a href=\"D:\\img\"><span style=\" text-decoration: underline; color:#0000ff;\">3.详细的使用文档</span></a></p></body></html>"))
            self.pushButton.setText(_translate("MainWindow", "start"))
            self.scriptButton.setText(_translate("MainWindow", "start_script"))
            self.radioButton.setText(_translate("MainWindow", "webkit"))
            self.radioButton_2.setText(_translate("MainWindow", "firefox"))
            self.radioButton_3.setText(_translate("MainWindow", "chrome"))
            self.Show_Label.setText(_translate("MainWindow",
                                               "<html><head/><body><p><span style=\" font-size:10pt;\">信息提示框</span></p></body></html>"))
            self.scrupt_a.setText(_translate("MainWindow",
                                             "<html><head/><body><p><span style=\" font-size:11pt;\">脚本路径</span></p></body></html>"))
            self.url.setText(_translate("MainWindow",
                                        "<html><head/><body><p><span style=\" font-size:12pt;\">URL</span></p></body></html>"))
            self.brower.setText(_translate("MainWindow",
                                           "<html><head/><body><p><span style=\" font-size:12pt;\">浏览器</span></p></body></html>"))
            self.actionpyton.setText(_translate("MainWindow", "pyton"))
            self.actionyes.setText(_translate("MainWindow", "yes"))
            self.actionno.setText(_translate("MainWindow", "no"))
    
        def radio_status(self):
            """包含了所有的浏览器,默认是谷歌浏览器
            问题:
            1.浏览器的驱动是否安装;
            2.浏览器驱动的名字没有确认
            """
            if self.radioButton_3.isChecked() is True:
                return "chromium"
            elif self.radioButton_2.isChecked() is True:
                return "Firefox"
            elif self.radioButton.isChecked() is True:
                return "webkit"
            else:
                return self.brower_lineEdit.text()
    
        def get_url(self):
            if len(self.url_lineEdit.text()) > 0:
                url = self.url_lineEdit.text()
                return url
            url = "https://www.baidu.com/"
            return url
    
        def start_PushBotton(self):
            url = self.radio_status()
            brower = self.get_url()
            os.chdir("D:")
            os.system(
                r"D:\python\virtualenv\demo\Scripts\activate | python -m playwright codegen --target python -o 'code.py' -b {} {}".format(
                    url, brower))
    
        def start_script(self):
            python_script = self.script_lineEdit.text()
            os.system("D:")
            os.system(r"D:\python\virtualenv\demo\Scripts\activate | python {}".format(python_script))
    
    """
    main.py文件
    """
    import sys
    
    import brower
    from PyQt5.QtWidgets import QApplication, QMainWindow
    
    if __name__ == '__main__':
        app = QApplication(sys.argv)
        MainWindow = QMainWindow()
        ui = brower.Ui_MainWindow()
        ui.setupUi(MainWindow)
        MainWindow.show()
        sys.exit(app.exec_())
    

    根据上面装好相应的环境直接运行就可以了pyqt5, playwright, pyqt5-tools,还有各种浏览器的驱动。强烈建议使用第二种方法,直接粘贴代码,百分之九十都可以成功运行。


    如有疑问或需数据请联系作者可留言博客或+
    qq:1769190045

    文章内容只供参考学习阅读,不可他用(特别商用)。侵权必追究其法律责任

    ——————————部分内容参考他人博客文章—————————————

    展开全文
  • python UI自动化自动关闭浏览器学习记录 小白python自动化的第一天 之前都是看别人的文章 没想过自己也有记录学习的一天 不过成长嘛 总要有第一次 某天利用公司网站写自动化demo的时候 简简单单的写完 进主页找到...
  • Python浏览器自动化操作(商品监控下单)

    千次阅读 热门讨论 2022-01-08 12:14:32
    python监控无货商品的下单

    1.起因

          这篇文章应该是前年和教你们如何Python安装教程(新手)那篇文章一起写的,现在却变成了2022年的第一篇文章,由于当时学python的目的也挺明确的用于爬虫,做一些自动化脚本等!
          当时由于小米6x已经跟不上我想玩玩吃鸡的需求,所以内心萌发了想换手机的举动,往往一个举动可能不太能影响一个人的行动,当时京东有出来个北京上海发放消费券的举动,我记得好像是2000-300的消费券,当时我阿姨刚好又在北京这不是美哉,当时算了下好想好像只要2499可以买Redmi K30 Pro变焦版本的手机,当时这个手机妥妥的旗舰机,可能就是有这些因素在所以才有了后续的下文!!!
    在这里插入图片描述
    找到了2020年当时的图片
    在这里插入图片描述
    和当时的消费券
         当时决定买这款手机还出了一款红米k30s 至尊纪念版又是屏幕高刷144Hz定价又2599加上首发又便宜300那么2299买高刷8+256岂不是起飞,那天我还依稀记得我蹲点到凌晨就等抢购,想必大家也都找到雷总的营销就像在问候我Are You OK 抢了个寂寞,当时预售完没抢到,6天后又一次预售还是抢到2299带回家,可恶的很我当时内心也还是在骗自己万一下一次的预售可以抢到呢!那不是不要那么麻烦去买k30 pro 变焦版本还要寄北京去转一手在寄学校,于是等待了漫长的6天第二次预售又开始了,激动的心颤抖的手,看着北京时间凌晨点击抢购键,你猜怎么着提示排队中过一会抢购结束了,又一次没抢到!
    在这里插入图片描述

          首先当时我在打算买k30 pro变焦版当时还是有货的,又因为这次的k30s 至尊价格太香了我就没有下单买k30变焦,到后面k30s 价格也恢复原价2599但是还需要抢购,而k30 pro变焦的确没货了,京东要不定时间才会上货,虽说上货京东会发送邮箱形式通知用户可以购买,每次提示我点击进去或者可能因为某些原因导致没办法第一时间看到信息而错过购买时间.

    2.需求

          于是我在想能不能写个程序让浏览器访问jd网站在通过购物车刷新的方式来获取最新商品信息是否有货,在通过html元素来判断一些关键词比如说显示有货我就勾选订单然后下单,付款等操作,付款是需要支付密码所以没有做,只要到付款那一块跳出密码我就返回这样这个订单就会进入待付款状态,这个时候我们可以对指定邮箱发送信息等这个没做,因为京东有货也会发信息通知我所以就没写,等京东发信息通知我,那就意味着我可以去app端付款了!

    3.准备环境

    关于python的安装可以看之前文章,由于这个是之前写的代码现在能不能运行可能还需要改代码,但是脚本什么还是需要的!

    1.[ pip的使用 ]

    假设我要安装Selenium
    Selenium 的安装很简单,可采用如下方式。

    pip install selenium

    在这里插入图片描述
    win+R输入cmd回车,然后把上面代码粘贴进行下载,我这是已经安装好的

    2.下载插件

    Selenium安装好之后,python并不能直接使用,它需要与浏览器进行对接。这里拿Chrome浏览器为例。若想使用Selenium成功调用Chrome浏览器完成相应的操作,需要通过ChromeDriver来驱动。

     链接:http://npm.taobao.org/mirrors/chromedriver/
            或https://chromedriver.storage.googleapis.com/index.html
    

    (版本要和谷歌版本一样)

    我的是 96.0.4664.45版本那你就要去下载这个版本

    在这里插入图片描述
    那访问网址找到对应版本
    在这里插入图片描述
    点击进去下载对应的操作系统
    在这里插入图片描述

    3.插件放在Python根目录

    下载好后把解压的软件放在自己安装python的目录里面

    在这里插入图片描述
    并且通过cmd命令行运行chromedriver,不报错则成功

    chromedriver

    在这里插入图片描述

    4.运行测试

    1.无货测试

    运行程序已经自动打开浏览器并且把帐户密码什么的都已经填写进去了,其中里面有5秒的时间需要我们人为滑动模块才能登录,当时现在今天又出现需要验证码才能登录了
    在这里插入图片描述
          遇到这些特殊情况程序都会报错退出,我输入完成验证码后程序运行项目后滑块需要自己搞外后会跳到购物车由于这个商品是去年的商品并且我也没有进入购物车会导致程序接着报错我们需要把这个id改成无货商品的监控
    在这里插入图片描述
    那么我们改动代码id
    在这里插入图片描述
    然后我们点击商品进入详情页获取id值
    在这里插入图片描述
    修改代码id所有的id都要替换新的值在这里插入图片描述
    改好后就运行就会识别商品是否有货,有货就会勾选订单,点击结算付款等功能
    在这里插入图片描述
    日志打印运行次数

    在这里插入图片描述
          现在这套代码还是可以继续监控要买的东西,当时和抢购商品到没啥太大作用,倒是可以监控一些想买但是没货,就可以用这个代码来监控等有货后我们就可以把商品买下了.


    2.有货测试

    现在我们把id换成有货的旺仔牛奶,已经进入有货的语句里面
    在这里插入图片描述
    勾选商品信息
    在这里插入图片描述

    在这里插入图片描述
    进入结算界面
    在这里插入图片描述

    在这里插入图片描述
    代码运行完成后可以看出,旺仔牛奶这个订单已经进入待付款页面,这个时候我只要24小时内付钱就可以了!
    在这里插入图片描述

    5.彩蛋

          可悲的是代码写好了也部署到我云服务器上,北京消费券都过期了,京东就在也没有上过k30pro变焦版本的货,太可恶了!

    在这里插入图片描述

    在这里插入图片描述
          后来抢到了Mi11,抢这个也是服了,当时在小米商城买的发售后因为没有256的版本错过了买128存储,当时抢购有看多一些博主说抢不到不要放弃,退出界面一直刷新购物车,在我不懈努力下刷了我20分钟后居然256的白色有库存了立马就买下来了真的是买个手机这么多坎坷

    展开全文
  • Selenium是一款免费的分布式的自动化测试工具,支持多种开发语言,无论是C、 java、ruby、python、或是C# ,你都可以通过selenium完成自动化测试。本文以一个简单的小例子,简述C# 利用Selenium进行浏览器的模拟操作...
  • 知识储备前提:熟练python语言理论与实际运用,熟悉selenium库与自动化测试环境配置。 browseroperator.py 浏览器操作 webdriveroperator.py WEBd页操作  分层设计:基础目录,浏览器操作与WEB操作分开。 一、...
  • 安装selenium包,安装Chrome浏览器,安装chromedriver Mac下相关安装: pip install selenium 使用selenium打开一个空的浏览器窗口: from selenium import webdriver driver = webdriver.Chrome() 报错’...
  • 现在这套代码还是可以继续监控要买的东西,一些想买但是没货,就可以用这个代码来监控等有货后我们就可以把商品买下了,里面每行都有注释,入门python也是很不错的项目
  • 本文实例讲述了Python多线程应用于自动化测试操作。分享给大家供大家参考,具体如下: 多线程执行测试用例 实例: import threading from time import sleep,ctime from selenium import webdriver #测试用例1 def ...
  • 主要介绍了Python模拟鼠标点击实现方法(将通过实例自动化模拟在360浏览器中自动搜索python),需要的朋友可以参考下
  • 我们今天要安装的selenium 就是浏览器自动化测试框架,是一个用于Web应用程序的测试工具,就是模拟用户操作。支持的浏览器包括Chrome,IE,Mozilla Firefox,Safari,Opera等。今天我们以Chrome为例讲一下安装方法。...
  • python自动化之控制浏览器

    千次阅读 2022-04-03 15:41:05
    python自动化webdriver相关操作 一、控制浏览器相关操作 1、控制浏览器窗口大小 全屏显示maximize_window() from selenium import webdriver driver = webdriver.Chrome() driver.implicitly_wait(3) #全屏显示 ...

    python自动化webdriver相关操作

    一、控制浏览器相关操作

    1、控制浏览器窗口大小

    • 全屏显示maximize_window()
    from selenium import webdriver
    
    driver = webdriver.Chrome()
    driver.implicitly_wait(3)
    #全屏显示
    driver.maximize_window()
    
    • 指定浏览器大小set_window_size(w, h)
    #指定浏览器大小
    driver.set_window_size(600,400)
    

    2、控制浏览器前进forward()和后退back()

    #前进
    driver.forward()
    #后退
    driver.back()
    

    3、刷新refresh()

    #刷新页面
    driver.refresh()
    

    4、窗口截屏

    img_dir = "C:\\测试\\img.png"
    driver.save_screenshot(img_dir)
    

    二、webdriver常用方法

    序号方法描述
    1clear()清除
    2send_keys(“value”)输入内容
    3click()点击事件
    4submit()提交
    5size元素尺寸
    6text元素文本
    7get_attribute()获取属性
    8is_displayed()查看该元素是否用户可见

    三、鼠标操作

    序号方法描述
    1click()鼠标点击事件
    2move_to_element()鼠标悬停效果
    3context_click()鼠标右击事件
    4double_click()鼠标双击事件
    5drag_and_drop()鼠标拖动事件

    1、单击事件

    from selenium import webdriver
    from selenium.webdriver import ActionChains
    from selenium.webdriver.common.by import By
    
    driver = webdriver.Chrome()
    driver.implicitly_wait(3)
    driver.get("https://www.baidu.com")
    driver.find_element(By.ID,"kw").send_keys("单击事件")
    element = driver.find_element(By.CSS_SELECTOR,'#su')
    ActionChains(driver).click(element).perform()
    

    2、鼠标悬停

    #鼠标悬停
    ActionChains(driver).move_to_element(element).perform()
    

    3、鼠标右击事件

    #鼠标右击击事件
    ActionChains(driver).context_click(element).perform()
    

    4、鼠标双击事件

    #鼠标双击事件
    ActionChains(driver).double_click(element).perform()
    

    5、鼠标拖动事件

    #鼠标拖动事件
    tag = driver.find_element(By.CSS_SELECTOR,"#div1")
    ActionChains(driver).drag_and_drop(element,tag).perform()
    

    四、键盘相关操作

    序号方法描述
    1send_keys(Keys.BACK_SPACE)删除键(BackSpace)
    2send_keys(Keys.SPACE)空格键(Space)
    3send_keys(Keys.TAB)Tab 键
    4send_keys(Keys.ESCAPE)ESC 键
    5send_keys(Keys.ENTER)Enter 回车键
    6send_keys(Keys.CONTROL,“a”)Ctrl+a | Ctrl+c | Ctrl+x | Ctrl+v
    7send_keys(Keys.F1)F1~F12

    以Enter回车键为例演示

    from selenium import webdriver
    from selenium.webdriver.common.by import By
    # 引入Keys模块
    from selenium.webdriver.common.keys import Keys
    driver = webdriver.Chrome()
    driver.get("https://www.baidu.com")
    #键盘按键操作
    element=driver.find_element(By.ID,"kw")
    element.send_keys("Enter回车事件")
    element.send_keys(Keys.ENTER)
    

    五、显示等待和隐式等待

    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions
    from selenium.webdriver.support.wait import WebDriverWait
    
    driver = webdriver.Chrome()
    #隐式等待
    driver.implicitly_wait(3)
    driver.get("https://www.baidu.com")
    #显示等待
    WebDriverWait(driver,5,1).until(expected_conditions.visibility_of_element_located(By.ID,"kw"))
    
    展开全文
  • 浏览器最大 Webdriver 打开浏览器后,默默是最大,如果需要界面最大,需要通过 maximize_window()方法来实现,代码如下: from selenium import webdriver driver=webdriver.Firefox() driver.maximize_...
  • [转载]Python实现浏览器自动化操作

    千次阅读 2018-01-05 11:05:20
    原文地址:Python实现浏览器自动化操作 作者:rayment 最近在研究网站自动登录的问题,涉及到需要实现浏览器自动化操作,网上有不少介绍,例如使用pamie,但是只是支持IE,而且项目也较久没有更新了。还有...
  • 主要介绍了selenium+python自动化测试之使用webdriver操作浏览器的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • Python自动化测试-自定义录制浏览器行为 PS C:\Users\LENG> pip install playwright -i https://pypi.tuna.tsinghua.edu.cn/simple Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple Collecting ...
  • Python自动化操作浏览器,解放双手,这感觉真爽

    千次阅读 多人点赞 2018-11-26 08:00:00
    点击上方蓝色文字,选择"置顶公众号"第一时间关注 Python 技术干货!阅读文本大概需要 5 分钟。上篇文章讲了 RF 自动化框架,今天来讲讲 RF 操作网页的常规操作...
  • python操作浏览器.zip

    2020-11-11 22:19:52
    帮助你快速入门浏览器基本操作,用好之后可用来做秒杀工具哦。
  • 应同学邀请,演示如何使用 PyQt5 内嵌浏览器浏览网页,并注入 Javascript 脚本实现自动化操作。 下面测试的是一个廉价机票预订网站(http://www.flyscoot.com/),关键点如下 使用 QWebEngineView 加载网页,并显示...
  • Python实现浏览器自动化操作

    千次阅读 2017-05-04 10:32:07
    原文地址:Python实现浏览器自动化操作作者:rayment  最近在研究网站自动登录的问题,涉及到需要实现浏览器自动化操作,网上有不少介绍,例如使用pamie,但是只是支持IE,而且项目也较久没有更新了。还有就是利用...
  • 前言本文主要讲解webdriber框架,Selenium 就像真实用户所做的一样...当然如果为了可视你可以在浏览器使用selenium的IDE插件,它是一个浏览器插件,可以下各浏览器插件中添加。下面主要说明使用python如何调用webd...
  • 先下载对应的版本的chromedriver.exe from selenium import webdriver # 指定 Chrome 的绝对路径 # (如果Chrome不是默认安装,要么设置在环境变量中,要么就在这里指定你Chrome的绝对路径) ...
  • ui自动化配套的浏览器及driver(谷歌和火狐浏览器及对应的driver)
  • python自动化操作网页(谷歌浏览器)

    千次阅读 2020-09-27 22:26:30
    python自动化操作网页谷歌浏览器所需工具下载.zip 一、python自动登录判题系统 from selenium import webdriver from selenium.webdriver.common.keys import Keys #打开网页 url="http://acm.wzu.edu.cn/index/"...
  • 前言:之前靠网上的大佬带,学了一点也算是爬虫的一个东西——浏览器自动化,现在算是整理总结或者是回报社会吧x 准备:① Python 3.6  ② selenium库  ③ google chrome driver (感谢 ...
  • python自动化测试

    2021-01-20 03:06:01
    用WebDriver操作浏览器 1.准备工作 WebDriver基础语法: 2.实战演练 步骤: 引入selenium模块-启动谷歌浏览器-打开百度-把浏览器最大-停顿一秒-刷新一下-获取百度首页的标题-打印出百度标题-关闭浏览器 代码 ...
  • (一)元素的操作 输入:send_keys() 点击:click() 清空:clear() #元素的操作方法 send_keys clear click diver.find_element_by_id("userA").send_keys("lilgaage") sleep(1) diver.find_element_by_...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 122,109
精华内容 48,843
关键字:

python浏览器自动化操作