QTP加载第三方DLL(C#)实现清除IE缓存(转)
由于QTP的默认编程语言是VBS, 而VBS是一种相对来说功能比较局限的脚本语言,因此我们在编写自动化测试脚本时会有很多功能无法很好的实现。 相对来说c#是一种高级编程语言, 可以实现大多数windows环境下的功能。 所以我们可以借助C#来实现在VBS下无法实现或者实现起来麻烦的功能。
本篇文章以清除IE缓存为例, 介绍QTP如何与.Net framework集成。
1, 创建c# dll.
在Visual studio 中新建项目, 选择Class library. 命名为: Automation
2, 在项目中新建一个类, 命名为:BrowserManager , 在这个类中定义了2个方法分别实现清理IE cache和cookie 。以下是具体代码:
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.IO;
- using System.Diagnostics;
- namespace Automation
- {
- public class BrowserManager
- {
- /*
- Temporary Internet Files (Internet临时文件)
- RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 8
- Cookies
- RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 2
- History (历史记录)
- RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 1
- Form. Data (表单数据)
- RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 16
- Passwords (密码)
- RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 32
- Delete All (全部删除)
- RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 255
- Delete All - "Also delete files and settings stored by add-ons"
- RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 4351
- */
- public void ClearIECookie()
- {
- Process process = new Process();
- process.StartInfo.FileName = "RunDll32.exe";
- process.StartInfo.Arguments = "InetCpl.cpl,ClearMyTracksByProcess 2";
- process.StartInfo.UseShellExecute = false;
- process.StartInfo.RedirectStandardInput = true;
- process.StartInfo.RedirectStandardOutput = true;
- process.StartInfo.RedirectStandardError = true;
- process.StartInfo.CreateNoWindow = true;
- process.Start();
- process.WaitForExit();
- }
- public void ClearIECache()
- {
- Process process = new Process();
- process.StartInfo.FileName = "RunDll32.exe";
- process.StartInfo.Arguments = "InetCpl.cpl,ClearMyTracksByProcess 8";
- process.StartInfo.UseShellExecute = false;
- process.StartInfo.RedirectStandardInput = true;
- process.StartInfo.RedirectStandardOutput = true;
- process.StartInfo.RedirectStandardError = true;
- process.StartInfo.CreateNoWindow = true;
- process.Start();
- process.WaitForExit();
- }
- }
- }
3, 将类通过编译, 并在项目工程文件夹 bin\debug目录下找到Automation.dll. 将这个文件复制到你想要存放的目录下。 例如c:\automation.dll
4, 打开QTP,实现调用:
- Function CleanIE_Cache_and_Cookie
- Dim BrowserManager
- set BrowserManager = Dotnetfactory.CreateInstance("Automation.BrowserManager","c:\Automation.dll")
- BrowserManager.ClearIECache()
- BrowserManager.ClearIECookie()
- Set BrowserManager = nothing
- End Function
QTP加载第三方DLL(C#)实现清除IE缓存(转)的更多相关文章
- fluent加载第三方(C++,Fortan等)动态链接库
这里我介绍一种比较简单的方法,首先我们从ANSYS Fluent UDF Manual上随便找一段正确的UDF,下面这段UDF取自ANSYS 18的ANSYS Fluent UDF Manual,位于 ...
- 应用SqlGeometry无法加载sqlserverspatial.dll
最近需要完成一个API,通过用户上传的经纬度判断用户的所在县市省,数据量相对不是很大所以把相关数据全部扔到了内存里知行,主要用到了SqlGeometry, 代码写完后运行本地没问题,扔到服务器上开始报 ...
- c#动态加载卸载DLL的方法
这篇文章介绍了c#动态加载卸载DLL的方法,有需要的朋友可以参考一下 c#中通过反射可以方便的动态加载dll程序集,但是如果你需要对dll进行更新,却发现.net类库没有提供卸载dll程序集的方法.在 ...
- C# 加载 SQLite DLL问题
/********************************************************************************* * C# 加载 SQLite DL ...
- VS2013编译经常卡在正在从以下位置加载xxx.dll的符号
换了系统后,重新下载了一个vs2013 with update2安装,编译的时候总是卡在 正在从以下位置加载xxx.dll的符号 如图: 解决方法: 进入VS---工具---选项----调试----符 ...
- 如何解决加载动态链接库DLL失败,返回0,GetLastError返回错误码126
通常情况下使用LoadLibrary加载DLL都可以成功,但是当被加载的DLL内部依赖其他DLL无法被找到时,该函数会返回126(ERROR_MOD_NOT_FOUND)错误. 解决办法有2种: 1) ...
- 加载php_curl.dll和php_openssl.dll出错原因及解决办法
今天在XP下安装PHP开发环境时,需要加载php_curl.dll这个动态库,自己想当然的在php.ini里把extension=php_curl.dll打开以为就可以了.可以在apache的logs ...
- C# 动态加载卸载 DLL
我最近做的软件,需要检测dll或exe是否混淆,需要反射获得类名,这时发现,C#可以加载DLL,但不能卸载DLL.于是在网上找到一个方法,可以动态加载DLL,不使用时可以卸载. 我在写一个WPF 程序 ...
- tp5 加载第三方扩展类库与手动加载的问题
=============================================================== <?phpnamespace my; /*** 加载第三方类库*/ ...
随机推荐
- Zookeeper---作为服务注册中心
认识Zookeeper是一套分布式协调服务. 优点: 简单:与文件系统类似,Znode的组织方式. 多副本:一般再线上都是三副本或者五副本的形式,最少会有三个节点. 有序:有序的操作,根据时间戳进行排 ...
- POJ1742 coins 动态规划之多重部分和问题
原题链接:http://poj.org/problem?id=1742 题目大意:tony现在有n种硬币,第i种硬币的面值为A[i],数量为C[i].现在tony要使用这些硬币去买一块价格不超过m的表 ...
- 洛谷 P1589 泥泞路 & 2019青岛市竞赛(贪心)
题目链接 https://www.luogu.org/problemnew/show/P1589 解题思路 用结构体存下每一段泥泞路的左端点和右端点,然后用sort根据左端点排序,采用贪心的思想,从左 ...
- 从0构建webpack开发环境(三) 开发环境以及 webpack-dev-server 的使用
sourceMap 实际应用开发过程中大部分时间都是处于开发模式中,其中需要频繁的修改代码.调试和打包. 但是打包后的代码多个模块压缩到了一个bundle文件,如果出现警告或者异常很难定位到具体模块和 ...
- java截取某个字符之前或者之后的字符串
String str = lly://enterVideoList?result={jsonString}; 截取?之前字符串 String str1=str.substring(0, str.ind ...
- simple_pt时遇到的问题
elf.c:30:18: fatal error: gelf.h: No such file or directory 安装libelf-dev 遇到找不到ldwarf apt-cache sear ...
- python常用函数 J
(1)join(iterable)/(2) join(str, str) (1)join()连接字符串数组.(2)os.path.join()将多个路径组合后返回. 例子:
- 商城分类导航实现 (css)
代码实例:demo.html <!DOCTYPE html> <html lang="en"> <head> <meta charset= ...
- Python 把字符串变成浮点数
from functools import reducedi = {}di.update(zip('1234567890.', [1,2,3,4,5,6,7,8,9,0,'.'])) def str2 ...
- Linux命令行工具之free命令
原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11524691.html 使用 free 查看整个系统的内存使用情况 Note:不同版本的free输出可 ...