引言 自动化测试平台的意义就三个字 --- 稳定性。 无论是接口自动化测试,还是UI自动化测试,目的就是为了提高产品的稳定性,保证用户体验。...「Ranorex」: Ranorex是一款商业UI自动化测试工具,适用于Web、桌面和移动应用程序。它提供了易于使用的录制和回放功能,支持多种编程语言。...使用「Inspect.exe」找到目标程序的的进程ID和控件的AutomationID。输入到测试程序中,看执行结果。..."); } } else { Console.WriteLine("找不到指定的进程");...目标WPF程序的文本框同时刷新。
前言 这篇文章介绍WPF UI元素的两步布局过程,并且通过Resizer控件介绍只使用Measure可以实现些什么内容。 ?...可惜的是WPF本身没有默认这种这方面的支持,连Expander的展开/折叠都没有动画。...需要了解的概念 为了实现这个控件首先要了解WPF UI元素的布局过程。...2.1 两步布局过程 WPF的布局大致上分为Measure和Arrange两步,布局元素首先递归地用Measure计算所有子元素所需的大小,然后使用Arrange实现布局。...很久很久以前常常遇到“布局循环”这个错误,这常常出现在处理布局的代码中。最近很久没遇到这个错误,也许是WPF变健壮了,又也许是我的代码变得优秀了。
一、问题起因线上报了较多Fragment资源id找不到的Crash。...再结合业务代码看:图片图片该Fragment没有其他逻辑,布局也很简单,按道理,不应该存在资源找不到的情况。。。自此基本没法分析问题出现的场景以及根因。...R.id.fl_settings_container,而Crash的直接堆栈就是报这个id找不到,所以这里可以大胆猜测发生了SettingsFragment替换了AboutContainerFragment...R.id.fl_settings_container,而Crash的直接堆栈报fl_about_container找不到,这个fl_about_container对应的是AboutFragment replace...的AboutContainerFragment的布局容器id,如果fl_settings_container被SettingsFragment替换了,那么这里有可能导致AboutFragment找不到AboutContainerFragment
WPF控件可以分为两类:原生控件和自定义控件。原生控件是由Microsoft提供的内置控件,如Button、TextBox、Label、ComboBox等。这些控件都是WPF中常见的标准用户界面元素。...一、Expander控件详解WPF中的Expander控件是一个可折叠的控件,可以用来显示或隐藏其子控件。当用户单击Expander控件的标题时,其子控件将会打开或关闭。...当用户单击控件的标题时,子控件将会打开或关闭,并显示或隐藏StackPanel中的所有按钮。1.属性介绍WPF中Expander控件是一个可展开的区域,通常用于显示或隐藏可选内容。...2.常用场景Expander控件是WPF中常用的控件之一,它可以将一组相关的控件或内容折叠起来,使用户可以灵活地控制显示和隐藏。...Expander控件是一个很有用的WPF控件,适合用于需要分组和隐藏控件的场景中。
问题描述 今天测试人员提了一个易用性的BUG,主要是说系统目前使用的树型控件不支持自动扩张列的宽度。其实客户那边已经对这个问题提了多次,不过由于对WPF只是入门级,所以一直都没改。...例如,Expander并不是Expander控件,而是一个ToggleButton,而且是写在模板中的,TreeGridRowPresenter中的Expander的类型也只是UIElement,也就是说...然后Ricciolo对它进行了一些研究:《Fun With GridView*RowPresenter》,最后他给出了一个较完整的版本:《A complete WPF TreeListView control...在模板中以PART_起头的控件是控件的约定,具体内容见:《WPF Parts Control Model》。...总结 解决这个问题,花了一天多的时间,主要原因还是因为对WPF还是处在入门的级别。
WPF的ItemsControl可以实现分组,是依托于GroupStyle,以ListBox为例,他的分组效果图为: ? ...,所以有人尝试在这里绑实体数据属性的话肯定是失败的,注意25行只能是Name,不管分组的属性叫什么名,这都只能是Name,我写了个Button在里面,如果想知道为什么只能是Name,写个Click处理,...把Button的DataContext打印出来就什么都知道了。...如果想在这里做更多的处理,比如进行一些负责的运算,可以写加转换器。 这里只是弄了一个原始的Expander装载分组控件,需要美化可以另写样式。 ...至此一个简单的ListBox分组显示就完成了。
前言 最近在自定义Expander的样式,顺便看了看它的源码。...这部分完全是面向初学者的,希望初学者通过Expander的源码学会一个基本的模板化控件应该如何构造。...即使代码量不大,Expander还是将代码分别存放在几个partial class中,这样做的好处是让承载主要业务的文件(Expander.cs)结构更加清晰。...WPF中的Expander的Header是个Object,可以方便地塞进各种东西,例如一个CheckBox或一张图片。...另外,在WPF中Expander派生自HeaderedContentControl,这就少写了Header、HeaderTemplate、OnHeaderChanged等一大堆代码。
(码友推荐)2018-07-04 .NET及相关开发资讯速递: 1..NET Core 2.1的重大缺陷延长了.NET Core 2.0的寿命 2.Injecting Services to ASP.NET...Core Controller Actions 3.WPF仿网易云音乐系列(一、左侧菜单栏:Expander+RadioButton) 4.EntityFramework Core进行读写分离最佳实践方式...- Jeffcky - 博客园 5.在制作跨平台的 NuGet 工具包时,如何将工具(exe/dll)的所有依赖一并放入包中 6.How to Create and Publish NuGet Packages...【从零开始搭建自己的.NET Core Api框架】(四)实战!...带你半个小时实现接口的JWT授权验证 13.使用第三方容器服务,自动化部署.Net Core 围观地址[码友网]:https://codedefault.com/
简要说明 OEA 1.0-2.0 框架中,界面都是以 WPF 技术作为基础平台开发的。...我们需要对开发出来的系统进行自动化测试,而 .NET 平台的自动化测试平台在公司内部还没有其它部门完成,所以我们在 2010 年的时候使用 Ruby + VS UIUnitTest 开发了一个 UI 自动化...WPF Applicatoin: ?...目前只是实现了 WPF 客户端的 UIA,Web 的 UIA 将会在需要时添加: ? ?...这是因为使用 VS CodedUITest 的类库,有时候并不能找到想要的控件,同时也不能为 OEA WPF 程序做一些深度的定制。
前言 WPF有一个灵活的UI框架,用户可以轻松地使用代码控制控件的外观。...简单的Expander 本文使用一个简单的Expander介绍UI和ControlTemplate交互的几种技术,它的代码如下: public class MyExpander : HeaderedContentControl...ExpanderToggleButton.IsChecked使用这种绑定与Expander的IsExpanded关联,当Expander.IsChecked为True时ExpanderToggleButton...现在看起来是VisualState的胜利,其实在Silverlight和UWP中TemplatePart仍是个十分常用的技术,而在WPF中Trigger也工作得很出色。 ? ?...结语 VisualState是个比较复杂的话题,可以通过我的另一篇文章理解ControlTemplate中的VisualTransition更深入地理解它的用法(虽然是UWP的内容,但对WPF也同样适用
最近在写一个BBS,依照书的葫芦画我的瓢,但是就算这样其中仍然出了不少问题。刚解决如上所述问题。...问题描述:在aspx中,cs代码页找不到aspx页面中的控件ID,提示“当前上下文中不存在名称XXXX”。 但是,在aspx文件中,明明定义了这个控件ID。...几经查找,终于找了了罪魁祸首,新建aspx文件后,我修改了命名空间为BBS,但是design.cs中的命名空间没有修改过来。因此控件和cs文件不再一个空间,就造成了这种后果。
本文来告诉大家在 WPF 开发中,发现有某个按钮或某个控件,某个预期的界面,没有在窗口或者没有在界面里面看到或者找到可能的原因和调试的方法 不在视觉树 如果控件在界面看不到,首先需要通过视觉树了解控件是否还在视觉树上...一个不存在视觉树的控件,肯定不会在界面中显示 调试某个控件元素是否在 WPF 界面的视觉树上,可以通过 VisualStudio 的实时可视化树功能进行调试 如果已进入后台断点,可以尝试通过此元素的...如果某个 WPF 的控件在界面看不见,同时此控件已布局到正确的地方,也设置了可见性,也有宽度和高度。...此时可以通过尝试修改容器,干掉所有的裁剪属性以及后台代码里面设置的裁剪属性等,看控件是否能显示出来,如果能,那么就是裁剪的原因 渲染变换 在 WPF 中,提供了 RenderTransform 属性作为渲染变换...如果干掉之后,能在界面看到控件,那么证明是因为变换写错了,而让控件看不到 样式丢失 在 WPF 里面,控件是可以使用样式的,而样式是可以有全局样式和指定样式。
前言 上一篇文章介绍了使用Resizer实现Expander简单的动画效果,运行效果也还好,不过只有展开/折叠而缺少了淡入/淡出的动画(毕竟Resizer模仿Expander只是附带的功能)。...一个稍微好看些的Expander的状态改变动画要满足下面的需求: 拉伸 淡入淡出 上面两个效果都可以用XAML定义 最终运行效果如下: ? 3....根据当前选中的Expander变化。...结语 虽然实现了Expander,但我想这种方式会影响到Expander中ScrollViewer的计算,所以最好还是不要把ScrollViewer放进Expander。...,应该可以轻易地移植到WPF(不过某些情况运行起来卡卡的)。
在 Resharper 更改全部命名空间之后,在 xx.g.cs 文件里面的 using 用了一个之前的命名空间,但是代码里面没有地方使用,此时构建不通过,原因是 xaml 里面存在引用 在安装 Resharper...之后,可以右击某个文件夹或项目,点击 Refactor -> AdjustNamespaces 批量更改命名空间 尽管 Resharper 会将大量的 xaml 的元素改对了命名空间,但是有些没有用到的标签就没有改全...> 点击 这里的...文件会根据 xaml 的命名空间引用添加 using 代码 因此在 g.cs 文件会创建下面代码 using Lindexi.DoubiDemo; 构建的时候提示找不到类或命名空间 >obj\Debug...解决方法有两个 第一个解决方法就是删除 xaml 里面的这些引用,可以全局搜寻,替换字符串 第二个方法是自己写一个空白的命名空间,因为如果 xaml 太多的话,需要改很久,写一个空白的命名空间就可以 namespace
WPF的Expander是显示内容视图控件,扩展区域的内容可以展开或折叠。ExpandDirection是设置扩展方向,FontSize设置字体大小,IsExpanded展示显示。...在Expander中加入ScrollViewer来显示指定的滚动样式。..."3,0,0,0" Text="经典歌曲"/> <NbExpander Header="收藏<em>的</em>歌单
前言 HeaderedContentControl是WPF中就存在的控件,这个控件的功能很简单:提供Header和Content两个属性,在UI上创建两个ContentPresenter并分别绑定到Header...以前的问题 在WPF中,HeaderedContentControl是Expander、GroupBox、TabItem等诸多拥有Header属性的控件的基类,虽然很少直接用这个控件,它的存在也有一定价值...不过在WPF中它的价值也仅此而已,由开发者自己实现也极其容易,以至于后来在Silverlight中就没有提供这个控件(后来放到了Silverlight Toolkit这个扩展里)。...毕竟这是照抄WPF的,也不能说它不对,但同样地这就把WPF的遗留问题完全保留下来了:因为使用了StackPanel,所以VerticalContentAlignment无论怎么设置都是无效的,Content...这样的合体姿势明显不对,事实上在WPF中继承HeaderedContentControl的控件(如Expander和GroupBox)都在ControlTempalte中使用了Grid或DockPanel
用Selenium的朋友一般都大量的需要使用Xpath、CSS定位器,一般的选择都是Firefox下的Firepath插件,该插件提供了提取和自己编写校验的功能,使用非常方便。...在Selenium官网上发现了一个支持商,而其提供的插件引起了我的兴趣,该插件的名字叫做Ranorex Selocity,是由著名的自动化产商Ranorex提供了定位插件(在Google插件市场中可以找到...安装完成后使用F12切出开发者工具,在右侧的元素信息中可以看到多了一个Ranorex Selocity的标签,我们可以在页面上直接右键选择copy selector来提取xpath、css等定位信息到Ranorex...Selocity标签下的定位中。...虽然提取出来的定位还是比较啰嗦,但是在Chrome上有这样一款可以提取&检查定位写法的工具,让我慢慢的就淡忘了FirePath了,也希望在做自动化的朋友和我一样沉浸在Chrome上的喜欢这款插件。
web前端的自动化测试,一般要能实现模拟鼠标点击、键盘录入、浏览器页面自动导航等功能,而且关键的是要对整个测试过程能自动录制并回放。.../2011/02/28/1967112.html 除了微软自家即将推出的vs2010 sp2之外,不少第三方厂家也推出了相应的解决方案,比如Ranorex(园子里有兄弟写过入门文章:http://www.cnblogs.com... 之所以选择它,理由很简单:它实在太容易上手了,不管新手老手,保证5分钟就能上手,而且支持几乎所有前端技术,包括ajax/aspx mvc/silverlight/wpf等....点击上图中的“绿色按钮”即可回放刚才的测试过程。 silverlight的UI自动化测试与普通网站的测试几乎完全一样,只是要事先配置silverlight的运行方式和起始页。...Silverlight manifest: a) Example for html page: <div id
Squish是全球3000多家公司的GUI测试自动化工具的首选,可以自动化其图形用户界面(GUI)和人机界面(HMI)的功能回归测试和系统测试。...内嵌等待机制 6、Ranorex 使用Ranorex Webtestit,这是为使用Java或TypeScript进行Web测试自动化而设计的轻量级IDE,为Selenium提供了开箱即用的Web测试自动化...主要特点: 快速而简单的设置:搭建你的整个测试框架 自动应用最佳实践,如页面对象模式 使用Chrome DevTools的Ranorex Selocity扩展立即生成UI元素选择器和屏幕截图 创建高效的...主要特点: 每个测试步骤的注释/叙述和屏幕截图。 通过需求或发布汇总来聚合测试结果。 帮助你编写更干净、更容易维护的自动化代码。 将你的自动化测试映射回你的需求 提供了测试覆盖率。...它支持自动化的应用程序,例如AJAX,HTML5,JavaScript,Silverlight,WPF,MVC,iOS,Android,PHP。它具有本机跨浏览器支持,并且是一种记录和回放工具。
如果没有好的工具,测试自动化就无法实现; 因为它们决定了自动化的执行方式以及自动化的好处是否可以实现。测试自动化工具是 DevOps 工具链中的重要组成部分。...Ranorex ? Ranorex已经存在多年,为Web、移动、桌面和API测试提供了一套全面和专业的特性。...利用其在基于桌面的测试自动化方面的经验,Ranorex具有高级的UI元素识别、编辑和管理功能。...与Katalon Studio一样,Ranorex通过友好直观的GUI、记录/回放和脚本生成,使测试人员能够轻松地进行自动化测试。...测试人员可以将 Ranorex 与 Selenium Grid 集成,以支持分布式测试和并行测试执行。
领取专属 10元无门槛券
手把手带您无忧上云