编码的UI-C#-时间itemprop标签-如何验证年份是否存在
我从 @dlatikay 中获得了帮助.问题/50744610/编码 - ui-c-sharp-executescript-count-count-not-return-return-value-correctly'>问题昨天,这帮助我部分解决了错误的正错误.这是代码片段: string countCurrentYearQA = (string)(window.ExecuteScript("count = 0; if(document.body.innerText.toString().indexOf('" + nowYearQAString + "') > -1){count = 1;} return count.toString();")); string countPastYearQA = (string)(window.ExecuteScript("count = 0; if(document.body.innerText.toString().indexOf('" +
6 2024-04-26
编程技术问答社区
检查Windows应用程序是否正在运行(非进程)。
我希望在自动化测试的开头检查应用程序是否打开.我可以通过执行以下 来检查该过程是否正在运行 foreach (Process proc in Process.GetProcesses()) { if (proc.ProcessName.Contains(name)) { return true; } } 但是,我想找到的过程在应用程序实际打开之前大约一分钟启动,并准备通过测试方法使用(这是一个非常缓慢的启动应用程序).上面的代码示例查看所有Windows进程正在运行,但我想知道,是否有一种方法可以执行类似的方法,但是可以查看运行的Windows应用程序? 解决方案 uITestControl.Exists为我做了窍门. 此方法将返回与打开的应用程序窗口的存在相对应的布尔值.这允许创建一个if语句,如果尚未打开,则可以打开应用程序,或者如果已经打开,则什么都不做. 其他解决方案 课程过程中已经有一种方法可以使用它来检查
0 2024-04-26
编程技术问答社区
用Selenium WebDriver测试一个ActiveX控件
我一直在使用Selenium的Iwebdriver为我的公司网站自动化一些测试,并遇到了一些我似乎无法自动化的ActiveX控件(可以选择和上传文件的对话框).我无法在Internet上找到有关此的任何特定信息. 我可以通过在页面中触发"打开"元素来实际加载对话框(用户必须手动单击文件目标和打开按钮),但它使测试失败(此代码对于我为什么打开对话框的原因,我最初有sendkeys并单击相反的顺序. private void UploadFile() { foreach (var element in driver.FindElements(By.TagName("button"))) { string open = element.Text; if (open == "Open") { element.SendKeys(@"My\Rel
4 2024-04-26
编程技术问答社区
使用Selenium以不同的用户身份运行Internet explorer
我想用Selenium启动单个Internet Explorer Instane.我提到以下帖子,但没有到达任何地方. 作为特定域用户运行Internet Explorer Selenium测试? 您能指出我如何实现它的正确方向? 解决方案 您可以使用URI身份验证来实现这一目标.对于Google Chrome而言,该行为有效,没有任何其他更改,但对于IE默认情况下,它被阻止了.您可以通过: 解锁它 将DWORD值的值数据设置为以下注册表中的1中的1个. 对于程序的所有用户,在以下注册表中设置值 键:hkey_local_machine \ software \ Microsoft \ Internet Explorer \ Main \ farmaturecontrol \ feature_http_username_password_disable 仅对于程序的当前用户,在 中设置值 以下注册表主题:hkey_current_user \ soft
0 2024-04-26
编程技术问答社区
我怎样才能用多个输入文件来运行同一个Coded UI测试?
我正在寻找一种能够运行具有不同输入文件的同一编码的UI测试类的方法,例如我有一个在应用程序中具有端到端流量的测试,我希望能够在应用程序内进行一次不同的工作流程的两个不同的用户进行此测试.我不想每次都进行两个测试(在数据输入CSV中有两个行是可能的).到目前为止,我找不到这样做的方法.感谢任何帮助/指导. 解决方案 我可以想到三种可能性. 1. 您可以安排CSV有两组列,例如 UserName1,Password1,DataAa1,DataBb1,UserName2,Password2,DataAa2,DataBb2 在测试方法中更改数据源访问以使用 之类的东西 string testCode = (...) ? "1" : "2"; ... = TestContext.DataRow["UserName" + testCode].ToString(); ... = TestContext.DataRow["Password" + testCode].T
2 2024-04-26
编程技术问答社区
Winium.Desktop是否在开发后也需要运行?
我是Winium World的新手.我尝试玩 winium.cruciatus ,这似乎效果很好,但并不完美. 因此,我想尝试 winium.desktop.driver.exe ,我理解 - 是十字架的硒兼容包装纸, 开发时必须单独运行. 但是,我想了解一旦开发完成, 如果解决方案已在生产中部署,它将 ( winium.desktop.driver.exe )仍然需要提前运行 用于工作的解决方案? 我的要求: 自动从一个单个VM上自动在多个VM(域加入)上安装软件. 如果(是) { 我认为,如果需要显式管理,它可能会阻止安装 允许运行.由于我们无法使用每台机器单击"是",所以 这打败了自动化的目的. 因为我的环境将是Windows Server 2012 R2和大多数 与win10这样的普通窗口比普通窗口更加限制的时间. } if(no) { 使用 winium.desktop.driver 与仅使用 cruciatu
如何在Windows窗体应用程序上实现一些自动化操作?
我有一个工作的Windows表单桌面应用程序.该应用程序每月从事一些工作.我每个月都需要运行该应用程序,并且有一个连接按钮.我单击,然后在下拉菜单中加载一些列表,然后选择其中一个,然后单击另一个按钮来完成工作.因此,我想做的就是自动化此过程,然后让应用程序每月按计划为我完成这项工作.我不想进入代码并将其作为控制台应用程序并从任务计划中运行控制台应用程序.我只是想知道有什么方法可以创建另一个小型应用程序并定义要采取的步骤(类似的宏或测试项目(CodedUI测试))可以为我完成工作吗? 解决方案 可能是您只需要诸如autohotkey之类的东西吗? http://www.autohotkey.com/ 它已经是"另一个小应用程序",您可以"定义要采取的步骤":) 其他解决方案 我建议您 automa - Python工具/图书馆,用于自动化GUI应用程序.它非常易于使用,非常适合您描述的任务: click(Button("Connect")) click(Comb
4 2024-04-25
编程技术问答社区
我怎样才能通过它的ClassID找到一个应用程序窗口?
我正在使用白色进行测试自动化.我创建了简单的应用程序测试,该测试正在通过其对话框名称跟踪应用程序. var appCalc = Application.AttachOrLaunch(new ProcessStartInfo("application.exe")); var wndCalc = appCalc.GetWindow("Dialog caption"); 但是这种方法是不稳定的,因为在不同的地方,标题可能会有所不同.我如何使用它的应用程序跟踪应用程序? 解决方案 var wndCalc = appCalc.GetWindow(SearchCriteria.ByNativeProperty(AutomationElement.ClassNameProperty, "Your class name"), InitializeOption.NoCache);
0 2024-04-25
编程技术问答社区
UiAutomationCore.dll中的System.AccessViolationException
我们有一个经常使用UI自动化API的测试自动化工具.在调用AutomationElement类的一种方法时,会发生在最新版本的Windows(例如Windows 10 21H2,Windows 11)中,API引发了异常System.AccessViolationException. 这是我们的代码: AutomationElement uiaElement; .... var cr = new CacheRequest { AutomationElementMode = AutomationElementMode.None, TreeScope = TreeScope.Element, TreeFilter = Automation.RawViewCondition }; cr.Add(InvokePattern.Pattern); cr.Add(TogglePattern.Pattern); cr.Add(RangeValuePa
2 2024-04-25
编程技术问答社区
如何在集成测试期间通过MSTest托管VS IDE?
我创建了一个集成测试项目来测试扩展.如果我从Visual Studio IDE运行测试,所有测试都可以运行正常,并且每种方法都会催生新的与IDE.测试方法具有以下属性: [HostType("VS IDE")] [TestMethod] public void TestWhateverMethod() { ... } 但是,如果我尝试自动化测试,并通过mstest(或vstest)从命令行运行它们,我收到了以下错误消息,用于在VS IDE中托管的测试: 由于以下原因,无法加载主机类型" vs iDE": 找不到钥匙" vs iDE".确保合适的主机 适配器安装在机器上. 因此,我尝试在以下方面找到解决方案: MSDN-如何:安装主机适配器.但这仅记录在VS2005和2008中. 我想询问有关VS 2013的指示,我在哪里可以找到更多?还是我想念什么?哪种适当的方法可以从外部与IDE外部进行集成测试?一个人如何以编程方式托管IDE? 预先感谢您! 解
12 2024-04-25
编程技术问答社区
C# NUnit Selenium-从SetUp向TestCase传递对象
我不明白范围在测试案例上的工作方式. [TestFixture] class MockTests { [Setup] private void StartTest() { IWebDriver driver = new ChromeDriver(); TestLogger logger = new TestLogger(); } [TestCase(TestName = "mock1")] { //Problem is here. Driver and logger "does not exist in the current context" driver.Navigate().GoToUrl("http://my.url.com"); logger.Out("Hello! I cannot be accessed!"); } [Te
4 2024-04-25
编程技术问答社区
Selenium-最佳实践-页面对象模式和页面工厂
自1年起,我就一直在开发项目.我已经达到了我的框架和测试的"维护"水平. 但是,每天我是否会在项目中使用良好的实践.如果经验丰富的人可以回答我的几个问题,那就太好了.大多数情况下,我对页面对象图案和页面工厂有疑问. 简短描述: 我的项目是一个基于C#的一页应用程序,Angular.js,JavaScript.驱动程序是一个静态实例,它具有许多其他MEHTOD(在下面的代码中,我只显示2).每个页面都是在页面中初始初始化的静态实例. 由于上述我不必初始化测试类中的对象. 问题列表: 在页面中初始化静态实例是不错的方法吗?在我看来,当我以这种方式进行[测试]. 使用PageObject库的"真实"优势是什么?只有变量的命名? " [Findsby(How = how.id)]"? 使用PageFactory的"真正"优势是什么?因为我没有找到任何项目,所以没有用. 在我的真实项目中,我有一个基类,从中,子类是继承的,所有子类的常见方法都写在pageb
2 2024-04-25
编程技术问答社区
LeanFT C#自动化;点击一个wpf按钮控件时出现异常
获取HP.LFT.SDK.GeneralReplayException: One or more specified arguments are not valid,在尝试单击WPF按钮时(使用与C#集成在Visual Studio 2015中的C#) 给定以下代码: // Identify the "LicensingButton" button var LicensingButton = objAdminApplicationModel.wnd_Adminstration.Describe(new ButtonDescription { Text = @"Licensing", ObjectName = @"Licensing" }); // Click the Licensing button. LicensingButton.Click(); 但我要低于异常 Exception is HP.L
4 2024-04-24
编程技术问答社区
如何使用自动脚本测试我的网络应用程序在一天中不同时段的性能?
基本上,我有一个使用ASP.NET MVC 4框架的Web应用程序.我使用C#作为后端.在几天的不同时间,我注意到Web应用程序滞后或很慢,但我想弄清楚一天中的哪些时间以及其他一些信息,这些信息对于弄清楚如何优化应用程序很有用.我希望能够编写一个自动脚本,该脚本在一天中的不同时间测试Web应用程序,并将其与应用程序的缓慢相关联. 我是测试自动化的新手,所以我想知道我可以从哪里撰写这些东西.特别适用于ASP.NET Web应用程序? 解决方案 您可以从几个角度进行处理: 日志 日志页面渲染时间,数据库访问时间以及其他可能导致慢速的时间的时间.使用登录框架,例如 nlog ,它允许您在日志中拨打和下降的细节量. 手动查看时获取更多细节 集成 Miniprofiler 在您的网站中,并在登录时打开它. 测量选定页面的实时性能 快速启动的解决方案是使用那里的许多外部测试解决方案之一. Google 衡量网站性能免费用于广泛选择. 如果您想自
0 2024-04-23
编程技术问答社区
HP-UFT WPF TextBlock对象捕获
我正在处理WPF应用程序,我们必须在其中自动测试. 此功能适合许多组件,但是我们很难检查一个摘要页面,在该页面中我们使用文本块显示我们的数据. HP工具找不到WPF TextBlock.因此,我们无法检查我们显示的值. 我们尝试了以下解决方案,但没有成功: 更改x:名称中的名称(不是最好的主意,但我们尝试了所有!) automationproperties.automation in textbloc automationproperties.name 使TextBlock聚焦 这里提出的解决方案: wpf教程解决方案 它们都没有起作用,我们目前被阻止. 有人经历过吗?是否有一个干净的解决方案来解决此问题? 我们需要的内容:访问文本块内容,特别是来自HP UFT工具的文本. 解决方案 在这里正确答案: - 1)打开UFT 2)在UFT中打开您的wfp" .exe"文件并运行. (yourwpffile.exe) 3)然后,您可以使
6 2024-04-23
编程技术问答社区
在WebDriver方法中获得Specflow标签
我正在使用C#,Selenium和Specflow运行自动测试套件.如果可能的话,我希望能够查看将哪些标签分配给当前方案,以便每个方案都可以实例化某些浏览器类型.使用Xunit ?? 是否可以 登录功能文件: Feature: Login In order to login to DRIVE As a user We have to enter login details Background: Given I am on the login page @headless Scenario: Logging in as a valid user And I enter a valid user and password When I submit the login form Then The user should be logged in WebDriverContext.cs文件 using OpenQ
12 2024-04-23
编程技术问答社区
用NUnit按顺序运行TestFixtures
我需要在Nunit C#应用程序中订购测试固定装置.我有一个示例有关如何运行订购测试方法的示例>,我尝试使用示例应用程序中提供的相同方法来实现测试固定装置的相同逻辑.在我们的应用中 每个班级分开一个测试固定装置,每个测试固定装置都有一种测试方法.我们的最新尝试是使用父母测试固定装置,该固定装置从称为:orderedTestFixture的类中继承(与示例相同),该固定装置具有以下方法: public IEnumerable TestSource { get { var assembly = Assembly.GetExecutingAssembly(); foreach (var order in methods.Keys.OrderBy(x => x)) { foreach (var methodInfo in methods[or
0 2024-04-23
编程技术问答社区
如何在同一浏览器实例中运行多个测试方法而不关闭它(C#, SeleniumWebDriverz NUnit)?
我是C#和硒的初学者.我想知道是否可以在同一浏览器实例中运行多个[testMethod] -s,而不会关闭它? 例如在完成" can_change_name_and_title"之后,我想继续" can_change_profile_picture". [TestMethod] public void Can_Change_Name_And_Title() { SidebarNavigation.MyProfile.GoTo(); ProfilePages.SetNewName("John Doe").SetNewTitle("New Title Test").ChangeNameTitle(); } [TestMethod] public void Can_Change_Profile_Picture() { SidebarNavigation.MyProfile.Go
2 2024-04-22
编程技术问答社区
如何在c#中验证弹出的消息框?
我正在编写一些测试,并试图验证某些系统消息框正在弹出.喜欢 http://www.dotnetperls.com/messageboxboxbox-show .但是,类MessageBox用于创建MessageBox.我应如何捕获和验证生成的系统并在其上进行操作? eg:动作是: 1.click on some execute file. 2.validate a warning messagebox pop up 3.click on yes/no on the messagebox 请有任何提示吗? 解决方案 一种选择是使用 white 自动化框架. 例如: Window messageBox = WindowFactory.Desktop .DesktopWindows() .Find(w =
2 2024-04-22
编程技术问答社区
Selenium C#中的显式等待不起作用。什么是错的?
所以我有明确的等待问题.我不想使用thread.sleep().这是一个简单的测试,它可以打开页面,然后向前返回.加载此页面大约需要2-3秒,我想以动态的方式(测试)进行此操作.希望我不要太在于concusig.我做了很多研究,但没有任何效果,也许我做错了什么. (我正在使用Resharper进行单元测试) 在这里我也有解决方案: 我正在使用扩展名来查找元素方法,所以我相信只能调用此方法并自行等待.我在解决方案中评论了一些解释.如果有人给我一些帮助,我将不胜感激. (对不起,不那么完美的英语). using System; using System.Threading; using ConsoleApplication2.Extensions; using NUnit.Framework; using OpenQA.Selenium; using OpenQA.Selenium.Chrome; using OpenQA.Selenium.Support.UI; nam
6 2024-04-22
编程技术问答社区