小编Bri*_*ian的帖子

使用Selenium在现有浏览器会话中打开新选项卡

我在C#下面的当前代码打开一个窗口,然后在单击按钮后导航到指定的URL.

protected void onboardButton_Click(object sender, EventArgs e)
{
   IWebDriver driver = new ChromeDriver();
   driver.FindElement(By.CssSelector("body")).SendKeys(Keys.Control + "t");
   driver.Navigate().GoToUrl("http://www.google.com")
}
Run Code Online (Sandbox Code Playgroud)

但我计划导航到的网站有单点登录.如何在现有浏览器会话中打开新选项卡并从那里导航?上面的代码似乎不起作用.

太感谢了!

c# asp.net selenium selenium-chromedriver selenium-webdriver

10
推荐指数
3
解决办法
2万
查看次数

如何将定时器分辨率从C#设置为1 ms?

我使用过这个工具,发现我的Windows Server 2008 R2 Standard的分辨率为15毫秒,而Windows 8的分辨率为1毫秒.

我宁愿在Windows Server 2008 R2上将Timer Resolution设置为1 ms,因为我正在运行低延迟软件.

我发现了这篇msdn文章,但它没有解释如何从C#程序更改Timer分辨率.我怎么做?

c# timer windows-server-2008-r2

9
推荐指数
2
解决办法
1万
查看次数

在C#中解析JSON的最有效方法

我想知道在C#中解析JSON的最有效方法是什么?而且效率我指的是响应时间较短的那个.我试图使用几种方法解析大量数据,这两种方法的响应时间都很长.谁能告诉我以下方法之间的区别?是否有一种替代方案可以让我以较低的响应时间进行解析?

选项1:

HttpWebRequest request = WebRequest.Create(jsonURL) as HttpWebRequest;
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{
    if (response.StatusCode != HttpStatusCode.OK)
        throw new Exception(String.Format(
        "Server error (HTTP {0}: {1}).",
        response.StatusCode,
        response.StatusDescription));
    DataContractJsonSerializer jsonSerializer = new DataContractJsonSerializer(typeof(obj));
    object objResponse = jsonSerializer.ReadObject(response.GetResponseStream());
}  
Run Code Online (Sandbox Code Playgroud)

选项2:

var json = new WebClient().DownloadString(jsonURL);
using (MemoryStream ms = new MemoryStream(Encoding.Unicode.GetBytes(json)))
{
    DataContractJsonSerializer jsonSerializer = new DataContractJsonSerializer(typeof(obj));
    object objResponse = jsonSerializer.ReadObject(ms);
}  
Run Code Online (Sandbox Code Playgroud)

c# asp.net json

8
推荐指数
1
解决办法
9442
查看次数

"是"关键字如何运作?

更具体地说,为什么这样做:

foreach (ChangeSetEntry changeRow in changeSet.ChangeSetEntries)
    if (changeRow is RouteStage)
    { ... }
Run Code Online (Sandbox Code Playgroud)

但这不是吗?

ChangeSetEntry changeRow = changeSet.ChangeSetEntries[0];
if (changeRow is RouteStage)
{ ... }
Run Code Online (Sandbox Code Playgroud)

在后一种情况下,我得到一个编译器警告说:

给定的表达式永远不是提供的类型.

我可以理解,因为changeRowChangeSetEntry不是一个RouteStage,所以为什么它在foreach块内工作?

这是我Submit对RIA Services DomainService中方法的重写.RouteStage是我定义的由实体返回的实体DomainService.

c# wcf-ria-services

8
推荐指数
1
解决办法
264
查看次数

C#DateTime从linq到分钟

我试图DateTimes在一分钟DateTime.Now和一个SQL条目中比较两个分钟.我发现问题是由于从DB返回的类型,滴答声略有偏差.但是我无法找到解决方法.

这是我DateTime抓住的

DateTime toGrab = DateTime.Now.AddMinutes(10)
                              .AddSeconds(-DateTime.Now.Second)     
                              .AddMilliseconds(-DateTime.Now.Millisecond);
Run Code Online (Sandbox Code Playgroud)

还有我的linq表达.

cc.DBAppointments.Where(c => c.StartDate == toGrab && c.Approved == 1).ToList();
Run Code Online (Sandbox Code Playgroud)

有什么建议吗?

c# linq datetime

8
推荐指数
1
解决办法
1390
查看次数

从ASP.NET应用程序池标识运行命令

当用户单击按钮时,我正在从ASP.NET应用程序运行可执行进程.此过程会创建多个文件,并将其提供给最终用户.我无法确切地看到进程是做什么或不做什么,但是直到我将admin用户指定为服务器上的应用程序池标识才行.我正在使用IIS7.

 using (var proc = new Process())
 {
    proc.StartInfo.FileName = Server.MapPath("~/Testing/Demo/MyExe.exe");
    proc.StartInfo.Arguments = String.Format("\"{0}\"", commandFilePath);
    proc.StartInfo.UseShellExecute = true;
    proc.Start();
    proc.WaitForExit();
 }
Run Code Online (Sandbox Code Playgroud)

我认为这通常是一件坏事.您能否让我深入了解为正常ApplicationPoolIdentity帐户启用此功能需要做些什么?

谢谢!

c# asp.net iis-7 application-pool applicationpoolidentity

7
推荐指数
1
解决办法
2827
查看次数

nunit测试工作目录

我有以下代码(sample1.evol - 附加到我的单元测试项目的文件):

[Test]
public void LexicalTest1()
{
     var codePath = Path.GetFullPath(@"\EvolutionSamples\sample1.evol");
     //.....
}
Run Code Online (Sandbox Code Playgroud)

我发现测试执行的工作目录不是汇编目录:(在我的情况下,代码路径变量分配给d:\EvolutionSamples\sample1.evol).

那么,如何更改执行工作目录(没有硬编码)?加载附加到测试用例的任何文件的最佳做法是什么?

c# nunit

7
推荐指数
1
解决办法
6230
查看次数

只为IntPtr创建一种任何类型的数组方法

有一个转换double[] dIntPtrlike 的方法:

public static IntPtr DoubleArrayToIntPtr(double[] d)
{
   IntPtr p = Marshal.AllocCoTaskMem(sizeof(double) * d.Length);
   Marshal.Copy(d, 0, p, d.Length);
   return p;
}
Run Code Online (Sandbox Code Playgroud)

什么是做的最好的方式int[],float[]我想在做每类一个方法,如添加INT []等:

public static IntPtr IntArrayToIntPtr(int[] d)
{
   IntPtr p = Marshal.AllocCoTaskMem(sizeof(int) * d.Length);
   Marshal.Copy(d, 0, p, d.Length);
   return p;
}
Run Code Online (Sandbox Code Playgroud)

1.可以将这个方法被推广,如果是的话怎么样?

2.是否有可能只在一行代码中获取指针(As Marshal是无效方法)?

c#

7
推荐指数
1
解决办法
634
查看次数

从中获取数据然后返回Windows剪贴板

我想获取当前存储在Windows剪贴板中的数据并将其保存在变量中,然后将数据放回剪贴板.

现在我正在使用这段代码:

object l_oClipBrdData = Clipboard.GetDataObject();
Clipboard.SetDataObject(l_oClipBrdData ,true);
Run Code Online (Sandbox Code Playgroud)

但在这之后,剪贴板是空的.

我究竟做错了什么?

c# clipboard copy paste

6
推荐指数
2
解决办法
9612
查看次数

正则表达式测试函数不会返回相同的依赖引号

我有一个奇怪的情况与javascript中的正则表达式:

var re = /[^\s]+(?:\s+|$)/g;
re.test('foo'); // return true
re.test("foo"); // return false
Run Code Online (Sandbox Code Playgroud)

正则表达式类型是否敏感?我的第一个目标是提取字符串的所有单词(由一个或多个空格分隔).

谢谢你的帮助.

朱利安

javascript regex string

6
推荐指数
1
解决办法
211
查看次数