新窗口句柄在IE中消失

这是我在此问过的上一个问题的后续跟进。 我之前遇到过使用Selenium 2.37.0在Internet Explorer 10中切换窗口的问题。 我的C#程序将导航到一个页面,单击一个打开链接的按钮,然后尝试导航到新窗口以执行其他任务。 我的程序一直都失败了,我确定这是因为Selenium的窗口句柄。 打开一个新窗口后,窗口句柄的数量( driver.WindowHandles.Count )会按预期从1增加到2,但经过一段时间后,窗口句柄的数量会下降到1。 我创建了一个可以重现此问题的最小样本网页。 只需将以下代码保存到桌面上名为test.aspx的文件中: 这是我的C#代码(Visual Studio 2010中的一个名为TestWindowSwitching的控制台项目),它打开此页面,单击按钮并打印一些输出: using System; using System.Threading; // Needed for Sleep using System.Diagnostics; // Needed for Stopwatch using OpenQA.Selenium; using OpenQA.Selenium.IE; namespace TestWindowSwitching { class Program { static void Main() { IWebDriver driver = new InternetExplorerDriver(); driver.Navigate().GoToUrl(“C:\\Users\\yourNameHere\\Desktop\\test.aspx”); try { driver.SwitchTo().DefaultContent(); } catch { […]

将字符串列表转换为json格式

如何转换字符串列表 List keys = new List() { “1-12VEXP”, “1-124DH9”}; 以json格式相同: [[“1-12VEXP”],[“1-124DH9”]] 在.net。 我正在使用Newtonsoft.Json。 任何帮助将不胜感激。

是否可以将任意方法组作为参数传递给方法?

我想写一个如下的函数 // The type ‘MethodGroup’ below doesn’t exist. This is fantasy-code. public void MyFunction(MethodGroup g) { // do something with the method group } 后来,我可以用任何方法组调用MyFunction 。 像这样的东西。 MyFunction(Object.Equals) 如果我承诺签名,那么事情就可以了。 public void MyFunction(Func f) { // do something with known delegate } … MyFunction(Object.Equals) 方法组Object.Equals很高兴被强制转换为已知的委托类型Func ,但我不想提交特定的签名。 我想将任何方法组传递给MyFunction 。 方法组无法转换为System.Object public void MyFunction(object o) { // do […]

使用OpenIdConnectServer并尝试通过API服务连接到Facebook

我正试图找出一种方法,使我的API能够将Facebook用户与我的身份用户相关联。 应用程序上下文 我正在开发一个移动应用程序(在Xamarin中),需要使用用户名/密码和Facebook登录。 我已经设置了app.UseOpenIdConnectServer配置并创建了自定义Provider因此我的应用程序已经在使用用户名/密码。 现在我正试图与Facebook进行这种集成,而不是找到一种方法来实现这一目标。 我正在考虑在API中创建服务,例如/api/auth/login-facebook/从Facebook传递access-token ,但我需要将我的API应用程序的access-token返回到移动应用程序,以便移动应用程序可以调用所有其他需要授权的服务。 对此有何帮助? 我想要获得的视觉方式: 用户在移动应用程序中按“使用Facebook登录” 移动应用程序调用/api/auth/login-facebook/从Facebook传递access-token 在API应用程序中,我将使用Facebook包检查access-token 如果用户不存在,我将使用Facebook返回的数据创建他,之后我将生成access-token以授予对我的API应用程序的访问权限 如果用户存在,我将生成access-token以授予对我的API应用程序的访问权限 将access-token返回给移动应用程序,以便它可以调用其他服务 如果我的知识错了,我应该以另一种方式进行这种整合/登录,请随意告诉我!

C#代表真实世界用法

我之前曾问过一个关于代表的问题,是否有人必须拥有必须拥有的情况,我必须使用委托? 这如何改善我的C#代码? 就像我使用它的许多场景一样,我似乎总是可以围绕它编程。

zlib.Net的压缩和解压缩问题

我正在使用ZLIB.Net ,我只是不明白我该怎么做才能压缩不是FileStream的流,而是压缩MemoryStream 。 通过做: byte[] buffer = ASCIIEncoding.ASCII.GetBytes(“Hello World”); MemoryStream outStream = new MemoryStream(); zlib.ZOutputStream outZStream = new zlib.ZOutputStream( outStream, zlib.zlibConst.Z_BEST_COMPRESSION); outZStream.Write(buffer, 0, buffer.Length); outZStream.finish(); buffer = outStream.GetBuffer(); Debug.WriteLine(DateTime.Now.ToString() + “:” + buffer.Length); MemoryStream inStream = new MemoryStream(buffer); MemoryStream mo = new MemoryStream(); zlib.ZInputStream inZStream = new zlib.ZInputStream( inStream, zlib.zlibConst.Z_BEST_COMPRESSION); int n = 0; while […]

代表,Lambdas,Action,Func,匿名函数

我只想validation我对以下内容的理解 委托 – 方法签名 Lambdas – 匿名函数 匿名函数 – 就是这样 操作 – 不返回任何内容的匿名函数 Func – 一个返回某些东西的匿名函数 嗯…他们都做类似的事情,你如何定义和知道何时使用每个? 对不起,我不好解释

复制对象属性:reflection或序列化 – 哪个更快?

我有两个相同类型的对象,需要将属性值从一个对象复制到另一个对象。 有两种选择: 使用reflection,浏览第一个对象的属性并复制值。 序列化第一个对象并反序列化副本。 两者都符合我的要求,问题是我在速度(成本)方面更好地使用哪些? 例 class Person { public int ID { get; set; } public string Firsthand { get; set; } public string LastName { get; set; } public int Age { get; set; } public decimal Weight { get; set; } } 需要将属性值从Person p1复制到Person p2 。 对于这个简单的样本 – 哪种方法更快? 更新 对于序列化,我使用此处建议的ObjectCopier: 深度克隆对象 […]

如何将本地数据库文件添加到Visual Studio Mac 2017

我正在Visual Studio(Mac)上用C#创建一个酒店管理服务,我似乎无法找到关于如何向我的项目添加本地数据库文件的好解释。 我在开放式办公室(.odb文件)中创建了我的数据库表,但似乎没有办法让我在我的项目中实现它。 文档中没有任何内容。 任何人都知道如何将数据库添加到Mac Visual Studio项目?

VLC远程控制VLC

我正试图从C#控制VLC媒体播放器。 我尝试使用.Net的FindWindow()命令在窗口上获取句柄,但是当我发现每次播放文件时窗口的名称都会改变。 我遇到的最大问题是将wm_commands发送到vlc ..这种方法适用于Winamp和Windows Media Player但是使用VLC似乎无法正常工作。 我读到VLC可以通过浏览器进行控制,但我不打算…我已经在其设置中看到它有一些可以调用的热键..但是它们可以被更改,如果我从中调用它们我的代码以某种方式…并且用户更改它们… bummer … 我有点卡住了……任何帮助都会很棒……索林