- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
编辑:在形成这个问题时,我没有注意到目标窗口是模态窗口,所以我尝试的方法是错误的。我应该一直使用 GetModal,而不是 GetWindow。留在这里作为 future 旅行者的潜在引用
我正在尝试使用 TestStack.White 为我继承的大型 WPF 应用程序编写一些测试;我有一个创建子窗口的情况,我需要获取对它的引用。如果我遍历对 Application.GetWindows 的调用结果,我可以找到它,但我无法用我能想象的任何 Application.GetWindow 化身找到它。
这在以下示例中进行了说明(其中名称是一个字符串)。该窗口是在 foreach 循环中找到的(只要我在迭代之前让线程休眠一秒钟,以便在单击其他内容后让窗口有时间创建。)老实说,这个练习的重点只是为了获得摆脱这种 Thread.Sleep 代码味道,所以我想使用 GetWindow 及其内置等待。
Thread.Sleep(1000);
foreach (Window window in app.GetWindows())
{
if (window.AutomationElement.Current.Name == name)
{
Assert.AreEqual(window.Title, name); // passes.. they match
Assert.AreEqual(window.AutomationElement.Current.Name, name); // passes.. they match
var aIdCheck = window.AutomationElement.Current.AutomationId; // empty string
}
}
try // this fails.. (after 30s)
{
var testGetWindow = app.GetWindow(name);
}
catch (Exception ex) { }
try // this fails too... (after 5s)
{
var testGetWindow = app.GetWindow(SearchCriteria.ByNativeProperty(AutomationElement.NameProperty, name), InitializeOption.NoCache);
}
catch (Exception ex) {}
try // you guessed it.. fail..
{
var testGetWindow = app.GetWindow(SearchCriteria.ByText(name), InitializeOption.NoCache);
}
catch (Exception ex) {}
最佳答案
试试这个:
var window = Retry.For(
() => parent.GetWindows().First(x => x.Title.Contains(name)),
TimeSpan.FromSeconds(5));
如果它有效,我认为问题是有多个进程/窗口以您要查找的名称运行。您的 foreach 循环之所以有效,是因为它不关心并且只是找到第一个,但是在这种情况下 GetWindow() 方法会中断。
关于c# - TestStack.White 为什么我可以用Application.GetWindows 找到一个窗口但用.GetWindow 找不到?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48001352/
它们有什么区别?据我所知,他们都做同样的事情。 最佳答案 如果你去资源,你会发现PhoneWindow.class实现了 Window.setBackgroundDrawable 方法: @Overr
编辑:在形成这个问题时,我没有注意到目标窗口是模态窗口,所以我尝试的方法是错误的。我应该一直使用 GetModal,而不是 GetWindow。留在这里作为 future 旅行者的潜在引用 我正在尝试
JSObject.equals 的文档说: Determines if two JSObject objects refer to the same instance. 相反,以下表达式的计算结果为
这可能是一个愚蠢的问题,但我有以下情况:我想在每次打开应用程序时设置窗口布局,例如更改状态栏颜色。所以我创建了我的应用程序文件,因为我听说如果您在应用程序文件中而不是在 MainActivity 中检
我已经为 ics 创建了一个锁屏,它将取代默认的锁屏。在我的代码中,我想使用 getWindow() 方法来设置 "android:hardwareAccelerated" true 以提高效率。 我
我正在尝试一些 Java/JavaScript 编码,但似乎遇到了困难。我试图将参数从 Java 传递到 JavaScript,但无论我做什么“JSObject jso = JSObject.getW
来自How to reference primaryStage我了解到,我可以使用 control.getScene.getWindow() 获取特定控件的 Stage,但这会返回一个 Window
我明白 TypeError: this.getWindow(...).$ is undefined 当我使用CKEDITOR.instances['pageContent'].getData();使用
下面一行代码中的getWindow()方法 this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_
在source for jQuery's offset() ,为什么不能直接用window呢? 最佳答案 以防元素实际上不在 window 上。例如,它可能位于 iFrame 或弹出窗口中。 关于ja
我看过以下帖子 How to keep background image size when software keyboard show Software keyboard resizes back
在我的 Android 项目中,我希望只有一个 fragment 的 softInputMode 为 adjustPan。 将以下行添加到我的 list (在 Activity 内)按预期工作: an
我正在尝试绘制一些颜色介绍对话框,我有几个按钮(用于选择颜色)和一个 CStatic 控制我将使用哪个窗口来绘制所选颜色它。但是,当我调用 m_myStatic.GetWindow( NULL ) 时
public class AircraftFragmentTab extends Fragment{ private String ac; public Aircr
我无法解决 getWindow();出于某种原因的方法... import java.applet.Applet; import netscape.javascript.JSObject; publi
我有一些Android应用程序的类文件,我有代码 protected void onCreate(Bundle bundle) { super.onCreate(bundle);
我正在尝试获取 Android 中的屏幕亮度。 场景是这样的:A 类调用 B 类的函数: A类: if(condition is true){ ClassB.function(); } B类: f
我按顺序调用了以下两个方法(按顺序使用适当的类级别字段) public const string ProcessName = "This is" public const string WindowT
我需要检查是否已在 ActionBarCompat 实例上设置叠加功能。 getWindow().hasFeature() 方法仅适用于 API 11 及更高版本。 如何检查 API = 11) {
我创建了一个完全适合设备显示的背景图像,没有状态栏和操作栏。这意味着我的设备的整个高度是 1280 像素。没有状态栏和操作栏它是 1038 像素。我的背景图片正好是 1038 像素高。当我将图像设置为
我是一名优秀的程序员,十分优秀!