我在互联网上搜索了一些例子;
"如何在C#中单击webBrowser(Internet Explorer)中的按钮?"
JS:
void ClickButton(string attribute, string attName)
{
HtmlElementCollection col = webBrowser1.Document.GetElementsByTagName("input");
foreach (HtmlElement element in col)
{
if (element.GetAttribute(attribute).Equals(attName))
{
element.InvokeMember("click"); // Invoke the "Click" member of the button
}
}
}
Run Code Online (Sandbox Code Playgroud)
但我的网页按钮有不同的标签.因此程序无法检测到单击它.
我的主要问题是; 如何以编程方式单击此按钮?
HTML:
<a class="orderContinue" href="Addresses" title="Sipar Ver">Sipar Devam</a>
Run Code Online (Sandbox Code Playgroud) 我正在使用Windows 8上的Visual Studio 2012终极版.
我正在开发一个html5/js metro-style-application.
我想从在线动态加载我的js文件.喜欢;
<script src="http://example.com/js/myJsFile.js"></script>
Run Code Online (Sandbox Code Playgroud)
但是地铁应用说;
APPHOST9601:无法加载http://example.com/Scripts/myJsFile.js.应用无法在本地上下文中加载远程Web内容.
我该如何解决这个问题?谢谢...
如何获得给定月份的每个“星期一”日?
一个例子;
输入:2017年7
月
11日(2017年7月11日)输出:( 3,10,17,24,31)3.7.2017星期一
10.7.2017星期一
17.7.2017星期一
24.7.2017星期一
31.7.2017
我可以得到给定月份的天数(对于2017年7月为31天)。然后,如果dayOfWeek等于星期一,则编写一个迭代(用于循环AE),然后添加到列表中。但这不是很好的代码,因为for循环将工作31次。应该有一个更好的算法来归档目标。
我正在使用C#.net Framework 4.6
更新
感谢大家的帮助,到目前为止,我已经给出了一些答案。我使用简单且肮脏的基准代码测试了所有代码,以找到更快的算法。
这是我的基准代码;
using System;
using System.Collections.Generic;
using System.Linq;
using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Attributes.Columns;
using BenchmarkDotNet.Attributes.Jobs;
using BenchmarkDotNet.Engines;
using X.Core.Helpers;
namespace X.ConsoleBenchmark
{
[SimpleJob(RunStrategy.ColdStart, targetCount: 5)]
[MinColumn, MaxColumn, MeanColumn, MedianColumn]
public class LoopTest
{
[Benchmark]
public void CalculateNextSalaryDateWithLoopAllDays()
{
DateTime date = new DateTime(2017, 7, 3);
const int oneMillion = 1000000;
for (int i = 0; i < oneMillion; i++)
{
List<DateTime> allXDaysInMonth = date.GetAllXDaysInMonthWithLoopAllDays(DayOfWeek.Tuesday);
if (allXDaysInMonth …Run Code Online (Sandbox Code Playgroud) 我正在使用ASP.NET MVC 5.我编写了一个小的过滤器属性,用于将内容安全策略添加到响应头.这是代码:
public class ContentSecurityPolicyFilterAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
HttpResponseBase response = filterContext.HttpContext.Response;
response.AddHeader("Content-Security-Policy", "default-src *; " +
"img-src * data:; " +
"style-src 'self' 'unsafe-inline' http://fonts.googleapis.com https://fonts.googleapis.com; " +
"script-src 'self' 'unsafe-inline' 'unsafe-eval' " +
"localhost:*/* " +
"https://facebook.com " +
"*.facebook.com " +
"https://facebook.net " +
"*.facebook.net " +
"https://onesignal.com " +
"*.onesignal.com " +
"https://abtasty.com *.abtasty.com *.convertexperiments.com " +
"http://www.googletagmanager.com " +
"https://www.googletagmanager.com " +
"http://www.google-analytics.com " +
"https://www.google-analytics.com " + …Run Code Online (Sandbox Code Playgroud) 我正在将C#与这些nuget包一起使用;
<package id="Elasticsearch.Net" version="5.2.0" targetFramework="net462" />
<package id="NEST" version="5.2.0" targetFramework="net462" />
<package id="Newtonsoft.Json" version="9.0.1" targetFramework="net462" />
Run Code Online (Sandbox Code Playgroud)
我在这里想要做的是,我想获得价格在2000-3000之间的“白色”物品。这是对搜索API的简单要求,对吗?
所以我为此编写了代码。这里是;
private static void Search(IElasticContext elasticContext, string indexName)
{
IQueryContainer termQueryContainer = new QueryContainer();
termQueryContainer.Term = new TermQuery
{
Field = new Field("description"),
Value = "white"
};
IQueryContainer rangeQueryContainer = new QueryContainer();
rangeQueryContainer.Range = new NumericRangeQuery
{
Field = new Field("price"),
LessThanOrEqualTo = 3000,
GreaterThanOrEqualTo = 2000
};
//Should get 2 items.
SearchRequest<Product> searchRequest = new SearchRequest<Product>(indexName, typeof(Product))
{
Size = 10, …Run Code Online (Sandbox Code Playgroud) 如何绕过/忽略 "拒绝访问路径"/ UnauthorizedAccess异常
并继续在此方法中收集文件名;
public static string[] GetFilesAndFoldersCMethod(string path)
{
string[] filenames = Directory.GetFiles(path, "*.*", SearchOption.AllDirectories).Select(Path.GetFullPath).ToArray();
return filenames;
}
Run Code Online (Sandbox Code Playgroud)
//打电话......
foreach (var s in GetFilesAndFoldersCMethod(@"C:/"))
{
Console.WriteLine(s);
}
Run Code Online (Sandbox Code Playgroud)
我的应用程序在GetFilesAndFoldersCMethod的第一行停止,一个异常说; "拒绝访问路径'C:\ @ Logs \'." 请帮我...
谢谢,
我看到了通过查询删除集合实体的例子;
https://ravendb.net/docs/article-page/4.0/Csharp/client-api/operations/delete-by-query
但我的问题是,如何在不给出索引的情况下删除集合?
举个例子,我像这样创建/插入一个集合到RavenDB;
using (IDocumentSession session = _documentStore.OpenSession())
{
session.Store<TEntity>(entity);
session.SaveChanges();
}
Run Code Online (Sandbox Code Playgroud)
我没有创建任何索引。刚刚将一些数据存储到 RavenDB。我在 api 中查找了类似的东西;
using (IDocumentSession session = _documentStore.OpenSession())
{
session.DeleteAll<TEntity>()
session.SaveChanges();
}
Run Code Online (Sandbox Code Playgroud)
但这并不存在。那么如何在没有给定索引的情况下删除实体呢?
我在www.illuminat.org上看到了这个神奇的东西,该网站不在线.
当用户访问此页面并按ctrl + U查看网站源时,用户只需在注释标签中看到他/她的计算机IP地址和位置信息... - 我不知道网站是如何做到的 - 如果用户向下滚动一点,<html>...代码就会出现......
无论如何,对不起我的英语,但我想你了解我,
我怎么能在Asp.net MVC3 Razor C#应用程序中这样做?
我正在尝试开发一个 Google Chrome 扩展程序。
当用户单击扩展按钮时,将出现一个小窗口(不是window.open/弹出)并显示网页。我有基本的 JavaScript 知识,而且我听说 JavaScript 可以实现这一点。所以,我想在有限大小的窗口中显示我的网站。我怎样才能用 JS/HTML/CSS 简单地做到这一点?
一个例子(不是同一件事,但很接近):在自定义窗口中显示的谷歌浏览器扩展
感谢您的任何意见。
这是我在互联网上找到的工具提示js功能,由于防御性编程而重新编码.但原始代码和我的代码具有相同的Google Chrome控制台错误消息.
消息说:
未捕获的ReferenceError:$未定义.
生成以下行的错误.
$(document).ready(function(){...
Run Code Online (Sandbox Code Playgroud)
代码工作正常,没有错误.在主函数中,控制台没有给出$符号的错误消息.
一个例子:
$(document).ready(function(){... //no error on console for "$"
Run Code Online (Sandbox Code Playgroud)
那么,这是Chrome浏览器控制台的错误还是我的错?
this.tooltip = function(){
/* CONFIG */
xOffset = 10;
yOffset = 20;
// these 2 variable determine popup's distance from the cursor
// you might want to adjust to get the right result
/* END CONFIG */
$("a.tooltip").hover(function(e){
if (this.t)
this.t = this.title;
this.title = "";
$("body").append("<p id='tooltip'>"+ this.t +"</p>");
$("#tooltip")
.css("top",(e.pageY - xOffset) + "px")
.css("left",(e.pageX + yOffset) + "px")
.fadeIn("fast"); …Run Code Online (Sandbox Code Playgroud) 对不起标题,这很难说.请看我的例子.
GetUser1和GetUser2之间有什么区别吗?
class Program
{
static void Main(string[] args)
{
GetUser1();
GetUser2();
}
private static User GetUser1()
{
return new User
{
Name = "Hello"
};
}
private static User GetUser2()
{
User user = new User
{
Name = "Hello"
};
return user;
}
}
public class User
{
public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我的一个朋友说; 没有区别.
但我这么说; 两种方法之间存在差异.GetUser2正在创建一个不必要的新对象.并且GetUser2具有轻微(非常小的)性能错误,因为您正在创建一个新对象......这是什么真相?我该如何研究这个话题?
更新
非常感谢您的回答...所以我继续问;
如果GetUser1和GetUser2之间没有区别,为什么roslyn会像这样编译代码(链接);
private static User GetUser1()
{
return new User {
Name = "Hello"
}; …Run Code Online (Sandbox Code Playgroud)