Python Selenium 自动测试网页

selenium+Python 实现简单的网页测试 1、python的下载 (1)下载地址:https://www.python.org/getit/    下载最新版2.7.10。 (2)在系统的环境变量Path中添加Python安装路径,如d:\Python27。 (3)打开菜单附件中的命令提示符,或直接输入cmd,输入Python。 若显示如下界面,说明配置成功。如果一开始就已经打开一个命令提示符界面,在修改环境变量后需要重新打开后再 阅读详情

自动测试脚本,多用于regression testing

  1. 需要安装Python 和 Selenium
    http://selenium-python.readthedocs.io/

  2. Python 用的IDE: AptanaStudio

  3. Selenium 默认浏览器是firefox, 如果用Chrome或者IE 需要自己下 web driver
    IE
    http://stackoverflow.com/questions/24925095/selenium-python-internet-explorer

  4. 如果用的是IE浏览器,输入速度非常慢。需要下面的代码优化一下

caps = DesiredCapabilities.INTERNETEXPLORER
caps['requireWindowFocus'] = True
driver_ie="C:\\Users\\yaqi.zhang\\Downloads\\\IEDriverServer_Win32_2.42.0\\IEDriverServer.exe";
driver=webdriver.Ie(driver_ie,capabilities=caps)
  1. 一般用来寻找tag的语句如下

我所用到的所有库

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
from selenium.webdriver.common.by import By
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException

from selenium.common.exceptions import NoSuchElementException     

by_name

driver.find_element_by_name('btnOK').click()

by_id

driver.find_element_by_id('btnOK').click()

by_xpath

driver.find_element_by_xpath("//input[@value='Save']").click()

在table中选择

    tr=driver.find_element_by_xpath("//tbody[@id='ListBody']/tr[1]")
    td=tr.find_elements(By.TAG_NAME, "td")[2]

    if td.text =='':
        return     

通过css选元素

                tr = driver.find_element_by_css_selector('tr.Selectable')
                tr.click()
                time.sleep (sleep_sec)

处理Alter

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException

def AcceptAlert(driver):
    try:
        WebDriverWait(driver, 3).until(EC.alert_is_present(),
                                       'Timed out waiting for PA creation ' +
                                       'confirmation popup to appear.')

        alert = driver.switch_to_alert()
        alert.accept()
        print ("alert accepted")
    except TimeoutException:
        print ("no alert")

处理弹出的其他窗口

    main_window_handle = None
    while not main_window_handle:
        main_window_handle = driver.current_window_handle
    driver.find_element_by_name('CMD_TEMPLATES').click()
    time.sleep(sleep_sec)
    signin_window_handle = None
    while not signin_window_handle:
        for handle in driver.window_handles:
            if handle != main_window_handle:
                signin_window_handle = handle
                break
    driver.switch_to.window(signin_window_handle)
    driver.find_element_by_name('bcnClose').click()
    driver.switch_to.window(main_window_handle)

所寻找的网页元素不存在

            try:
                tr = driver.find_element_by_css_selector('tr.Selectable')
                tr.click()
                time.sleep (sleep_sec)

                tr=driver.find_element_by_xpath("//tbody[@id='ListBody']/tr[1]")
                td=tr.find_elements(By.TAG_NAME, "td")[2]

                if td.text =='':
                    print('There is no policy')
                    return    

                else:

                    tr.click()
                    time.sleep (sleep_sec_short)

                    driver.find_element_by_name('btnOK').click() 
                    print('Choose existing policy')

            except NoSuchElementException:
                print('there is no item')
                return   

以上是比较基础的东西,我用了一个礼拜写完完整的测试脚本。Regression 从原来的十天,下降到一天半到两天。

Rust练手:从零手撸RISC-V架构虚拟机(一)(附完整代码) 使用Rust实现一个简单的RISC-V架构的CPU雏形,支持add,sub,addi三个指令。 阅读详情

相关推荐

减小伺服电机共振的方法(以松下伺服为例)

嘿 ! 我是【小黄】 , 我们又见面啦 !!! 毕竟技术只有大家交流才会进步嘛 ! 这博客是对自己学习的一点点记录和总结 ,如果您对自动控制感兴趣的话 ,可以关注一下我的动态 , 我们一起学习呀 ! 我们都还年轻 ,我们还有无限可能 。 YES ! 减小伺服电机共振的方法(以松下伺服为例)1. 准备工作:1.1.1 如何推定共振点:1.1.2 测定实操:1.1.3 总结:2. 下期预告: 在我们调试完伺服参数以后机器人运动到某个特定位置会产生振动或异响,我们要做的就是消除这个异响保..

在下小黄的博客 1万+

python-selenium自动化测试网页

title: python-selenium自动化测试网页 categories: Python tags: [python, selenium, 自动化, 测试, 秒杀] date: 2022-03-01 16:57:54 comments: false mathjax: true toc: true python-selenium自动化测试网页 前篇 自动化:Selenium八大元素定位简单介绍 - http://www.chuansinfo.com/itzixun/1893.html se.

. 2217

MobaXterm破解14个会话限制的保姆级教程(附Python环境配置指南)

本文提供了MobaXterm破解14个会话限制的详细教程,并深入讲解了如何配置稳定的Python环境以支持相关脚本运行。通过理解软件授权机制、安全实践步骤以及许可文件的应用,帮助用户解除会话数量限制,实现高效的远程服务器管理与自动化运维。

weixin_29211309的博客 1638

python批量验证url能否正常访问

建立一个名为url.txt的文件,将需要批量测试的url放此文件中,执行脚本就看可以了 #!/usr/bin/python3 # coding=utf-8 import urllib.request import urllib.error f = open("url.txt") url = [] for line in f.readlines(): tmp = line.replac...

梦之旅行地 1665

Vue3 + MQTT.js 实现 SCADA 实时数据通信:从不稳定到稳定的完整实践

本文介绍了SCADA组态引擎开发中MQTT协议的应用及优化实践。项目采用MQTT协议实现工业设备数据采集与可视化,但面临连接不稳定、数据格式多样化和数据绑定复杂三大问题。针对MQTT连接问题,分析发现超时设置过短(原8秒)、缺少客户端超时配置和心跳机制是主要原因。优化方案包括:协议转换(mqtt://→ws://)、双重超时保护(15秒手动+30秒客户端)、60秒心跳间隔等,显著提升了连接稳定性。通过完整代码实现展示了连接配置、认证处理和错误处理机制,为物联网数据传输提供了可靠解决方案。

weixin_36794508的博客 1398

分子动力学仿真软件:LAMMPS_(16).应用案例分析

通过以上四个应用案例,我们详细介绍了如何使用LAMMPS进行不同系统的分子动力学仿真。从简单的液体水仿真到复杂的纳米管仿真,每个案例都包含了详细的步骤说明和代码示例。读者可以通过这些示例实际操作并验证结果,从而更好地理解LAMMPS的功能和使用方法。希望这些案例能够为读者在分子动力学仿真领域的研究和应用提供帮助。

kkchenjj的博客 836

python+selenium:简单实现多线程执行测试用例和多线程分布式执行测试用例

1、多线程执行测试用例 环境:Win10 x64, python 37, selenium 2.5, Firefox 46等 from threading import Thread from selenium import webdriver from time import ctime, sleep def test_baidu(browser, search): """测试用...

青少儿编程STEAM 3969

通过Robotstudio修改机器人程序的具体方法和步骤

通过Robotstudio修改机器人程序的具体方法和步骤

Robot_PLC_HMI_Automation 6393

python selenium实现简单网页测试流程-健康打卡v3.0

# clock_in 介绍 吉林大学自动研究生每日打卡 软件架构 Python 3.8.2【个人使用,且安装不赘述】 selenium - chromedriver 【调用chrmoe】 win32gui【调用qq】 apscheduler【定时任务】 开发思路 用selenium完成测试,获取网页中“已完成项目”数据,通过win32gui发送给接收用户QQ,利用apscheduler实现定时任务 安装教程 将chrmoe驱动存放至 chrome根目录下Application文件夹 ...

zolty 796

15、目标检测模型的评估指标与YOLO算法解析

本文详细解析了目标检测模型的评估指标,包括精确率、召回率、AP、mAP及IoU的定义与作用,并深入介绍了YOLO算法的核心原理与推理流程。从网格划分、锚框引入到边界框细化与后处理,全面阐述了YOLO如何实现快速准确的目标检测。同时总结了YOLO在智能安防、自动驾驶和工业检测等领域的应用,并展望了其未来在准确性提升、多类别支持和技术融合方面的发展趋势。

work3的博客 64

基于深度学习的CT图像肺结节分割与检测系统[完整代码数据分享]

基于深度学习的CT图像肺结节分割与检测系统[完整代码数据分享]

269

通过Python3+selenium自动测试网页

使用的是selenium,最开始接触这个模块包是爬虫,这次是工作需要来自动测试网页。 记录一下模拟不同浏览器的方式 总共测了两个浏览器,Firefox在centos7上和chrome在win10上。都是模拟的IPAD方式访问,原因是使用模拟手机的话,会有部分内容被挡住导致无法模拟点击,┑( ̄Д  ̄)┍无奈。 so,模拟手机和模拟IPAD是同样的操作,只是把对应IPAD的内容换成想要的手机就可以...

weixin_34185560的博客 673

28-3 文件上传漏洞 -白盒审计绕过

这行代码是用来获取文件名中最后一个点(.)后的部分,也就是文件的后缀名。这个函数会返回以最后一个点(.)开始到字符串末尾的部分,包括点(.)本身。然而,这段代码存在一个潜在的安全风险。攻击者可以利用多个点(.)来构造恶意文件名,以绕过后缀名检查。切换到bp将抓到的上传请求发送到重发器然后改包。先上传一个普通的php文件然后使用bp抓包。

weixin_43263566的博客 392

python自动测试浏览器_通过Python3+selenium自动测试网页

使用的是selenium,最开始接触这个模块包是爬虫,这次是工作需要来自动测试网页。记录一下模拟不同浏览器的方式总共测了两个浏览器,Firefox在centos7上和chrome在win10上。都是模拟的IPAD方式访问,原因是使用模拟手机的话,会有部分内容被挡住导致无法模拟点击,┑( ̄Д  ̄)┍无奈。so,模拟手机和模拟IPAD是同样的操作,只是把对应IPAD的内容换成想要的手机就可以了。fro...

weixin_39630855的博客 244

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

简单使用DrissionPage网页自动化工具

DrissionPage网页自动化测试工具;

FlyLikeButterfly的博客 1290

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

python计算工资工时_[Python+selenium]自动测试获取[iframe中嵌入的web页面元素][已解决],PythonSelenium,自动化,Iframe,内,网页...

#-*- coding:utf-8 -*-from selenium.webdriver.common.keys import Keysfrom selenium import webdriverimport time'''V1.0实现自动化点击工时确认1、添加chrome_driver驱动路径'''chrome_driver=r"D:\Program Files\Python3.8\Lib\si...

weixin_39806679的博客 98

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

selenium

from selenium import webdriver from selenium.webdriver import ChromeOptions 1.创建设置对象 options = ChromeOptions() 2.取消自动测试检测 options.add_experimental_option(‘excludeSwitches’, [‘enable-automation’]) 3.取消图片加载(提高页面的加载速度) options.add_experimental_option(“prefs”,

weixin_50995831的博客 419

python 网页自动化实现

python网页自动化实现

xiaoyurainzi的博客 3518

day04 python

一、Selenium请求库 1、什么是selenium? selenium是一个自动测试工具,它可以帮我通过代码 去实现驱动浏览器自动执行相应的操作。 所以我们也可以用它来做爬虫。 2、为什么要使用selenium? 主要使用selenium的目的是为了跳过登录验证。 3、安装与使用 ——下载驱动器: http://npm.taobao.org/mirrors/chr...

weixin_30454481的博客 81

selenium定位下拉框

selenium定位下拉框

Zhangaihua 230

scrapy 框架的下载与下载时常遇到的错误

python中用于爬虫的框架有三个:Scrapy   PySpider  Selenium  其中,Selenium:自动测试的一个框架下载scrapy命令框输入:pip install scrapy在下载时可能会出现以下错误:下面说明我遇到的错误与解决方法故障一:时间超时:解决方法:输入命令故障二:如下解决方法:下载安装VisualCppBuildTools_Full.exe文件即可...

dayun555的博客 792

H5企业面试题一

输入一个或多个车牌号码,多个以逗号分割开,再输入想查询的日期(数字,周几),输出该日期限行的车牌号. 车牌号码有以下要求,如:AD123,12101,车牌号不能全是字母。 * 现在对尾号进行限制:尾号为1,9则周一限行,尾号为2,8则周二限行,尾号为3,7则周三限行 尾号为4,6则周四限行,尾号为5,0的周五限行,周六周日不限行。 *尾号不为数字,则看第4位是否是数字,如果第4位还不是 数字,继续看第3位,以此下去,直到找到有数字的时候止. * 由于用户不熟悉系统,有可能输入错误车牌,如车牌不.

qfluohao的博客 287

【测试报告】笔耕云

博客系统由五个页面构成:用户登录页面,博客列表页面,博客详情页面,博客编辑页面,博客发布页,为了验证个人博客系统的功能是否正常,现在对博客系统进行手动和自动化测试,以便用户使用博客系统进行登录,项目的具体测试内容为:博客系统的登录,博客列表页和博客详情页还有博客编辑页的页面呈现和功能,写博客,退出博客登录的功能是否正常,个人博客系统可以实现发布个人博客,记录博客发布日期、时间、标题、博客发布者等信息。

qq_58761784的博客 995

python自动填写表单代码_selenium python --自动表单填写--学习笔记

因为公司业务的需要,要在公司内部网上(jsp网站)系统中做大量的重复操作,之前也用过如“按键精灵”或“Auto_ACN"之类的自动操作软件。但是这些东西不但脚本编写困难(主要是对网页上特定原素的定位等)运行的时候还占用整台电脑,不能有任何干扰。也考虑过使用python 来直接模拟浏览器,自动构建表单数据发送来自动操作,但公司这个破网站,一大堆的frame 一大堆的javascript 跟踪了几次还...

weixin_42512966的博客 1694

要被抖音笑死了,打开个网页就算黑客?那我Python算啥!!

在刷抖音的时候都会看到类似的视频:营销号用txt记事本巴拉巴拉写几行代码,就可以伪装成黑客了。▲一顿操作猛如虎又比如下面这样,远看一顿操作猛如虎,近看代码原来是打开网页。打开某个网页简单看了几个视频,发现“黑客”营销号们最常用的套路就是 dir/s start和exit do和loop。其中DOS命令start这个命令,它可以启动一个exe程序,也可以启动一个BAT批处理脚本。它是一个比较重要的命令,start这个命令是个并行的命令,就是说运行exe的时候它可以同时运行多个。

2401_86168842的博客 925

python作业火车票订购系统_[Python爬虫]使用Selenium操作浏览器订购火车票

原标题:[Python爬虫]使用Selenium操作浏览器订购火车票这个专题主要说的是Python在爬虫方面的应用,包括爬取和处理部分[Python爬虫]使用Python爬取动态网页-腾讯动漫(Selenium)http://www.aibbt.com/a/18049.html[Python爬虫]使用Python爬取静态网页-斗鱼直播http://www.aibbt.com/a/18048.htm...

weixin_39610366的博客 452
上一篇: 写在冬日的第一天--一个女程序员第十二年工作总结
下一篇: Javascript 自动在每N个字符后面加-
clear_zero
博客等级 码龄24年 2426粉丝 36原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值