通过该代码,我从html文档中提取了所有需要的文本
private void RunThroughSearch(string url)
{
private IWebDriver driver;
driver = new FirefoxDriver();
INavigation nav = driver.Navigate();
nav.GoToUrl(url);
var div = driver.FindElement(By.Id("results"));
var element = driver.FindElements(By.ClassName("sa_wr"));
}
Run Code Online (Sandbox Code Playgroud)
虽然因为我需要优化提取文档的结果
Container
HEADER -> Title of a given block
Url -> Link to the relevant block
text -> body of a given block
/Container
Run Code Online (Sandbox Code Playgroud)
你可以在我的代码中看到我能够将文本部分的值作为文本值获得,这很好,但如果我想将容器的值作为HTML而不是提取的文本呢?
<div class="container">
<div class="Header"> Title...</div>
<div class="Url"> www.example.co.il</div>
<div class="ResConent"> bla.. </div>
</div>
Run Code Online (Sandbox Code Playgroud)
所以容器在页面中大概是10次我需要提取它的innerHtml.
有任何想法吗 ?(使用Selenium)
在这个示例代码中,我使用一个简单的StopWatch来测试完成给定任务/操作所需的时间
StopWatch SW1 = new StopWatch();
SW1.Start();
SomeAction();
SW1.Stop();
sting results = SW1.Elapsed.ToString();
MessageBox.Show(resutls);
Run Code Online (Sandbox Code Playgroud)
我想有一个我将实例化的类用于测试
public Class PerformanceTests
{
public StopWatch SW1 = new StopWatch();
public StopWatch SW2 = new StopWatch();
public string results1 = "", results2 = "";
....
....
//some other variables to use
}
Run Code Online (Sandbox Code Playgroud)
虽然在实例化类并尝试使用时SW1并没有让我使用它的方法.我究竟做错了什么 ?
PerformanceTests Ptst = new PerformanceTests();
Ptst.SW1. ... Start() is not accessible
Run Code Online (Sandbox Code Playgroud)
更新
对于其余的答案,请不要复制我的代码,因为我错过了大写stopwatch.而不是实例化秒表课我不小心没注意Visual Studio问我是否想为我所谓的秒表而不是.NET的真实创建一个类Stopwatch.
所以我的建议,注意Visual Studio intellisense的建议操作,即使它应该一直是相同的.只要确保你真正有经验并且熟悉所有课程.
我已经设置了一个跟踪鼠标事件的功能document,即使我只需要鼠标专门用于重新尺寸检测目的,至少此时...
var BoolMouseDown = false;
var BoolResizing = false;
document.body.onmousedown = function () {
BoolMouseDown = true;
};
document.body.onmouseup = function () {
BoolMouseDown = false;
};
Run Code Online (Sandbox Code Playgroud)
在ui上
sideNote:目标是获取鼠标下每个元素的数据,以便它可以转换为一个新的(div)部分,它在征服者中幸存下来
// called function on resiz event
var ValueCurSourceCellId = "";
var ValueCurDestCellId = "";
function CurCellIdSet(val) {
if (BoolMouseDown) {
ValueCurDestCellId = val;
BoolMouseDown = false;
}
else {
if (BoolResizing) {
ValueCurDestCellId = val;
}
ValueCurSourceCellId = val;
}
}
var BoolHasCollided = false;
$(gitem11)
.mouseover(function () { …Run Code Online (Sandbox Code Playgroud) 我有一个页面(somePage.aspx),我需要作为电子邮件正文生成的内容
<div id="DV_TimeReportWraper" runat="server" style="display:block">
<table id="TBL_UsersinTblTime">
<tr id="TR_UsersinTblTime">
<td id="TD_H_Name" class="Dg">
name
</td>
<td id="TD_H_UserID" class="Dg">
ID
</td>
<td id="TD_H_Status" class="Dg">
initial Stage
</td>
<td id="TD_H_SignOutAutoExeState" class="Dg">
current Stage
</td>
</tr>
<%
if(edata != null)
for (int idx=0;idx<edata.Count;idx++) {
var row = edata[idx];
bool bgcl = (idx % 2) == 0;
string BgCol = "";
if (bgcl)
BgCol = "#70878F";
else
BgCol = "#E6E6B8";
%>
<tr style=" background-color:<%=BgCol%>">
<td id="TD_Name">
<% = row["name"] %>
</td>
<td id="TD_UserID"> …Run Code Online (Sandbox Code Playgroud) 并行化以下代码的正确语法是什么?
static void Main(string[] args)
{
Task.Factory.StartNew(
() =>
doOne(SelectedTask.option1)
.ContinueWith(
task =>
doOne(SelectedTask.option1)).Wait()
);
}
Run Code Online (Sandbox Code Playgroud)
与enum"selectedTask" 相同的方法来决定执行哪些代码:
static enum SelectedTask
{
option1,
option2
}
static void doOne(SelectedTask Lunch)
{
switch (lunch)
{
case SelectedTask.option1:
Console.WriteLine("option1");
break;
case SelectedTask.option2:
Console.WriteLine("option2");
break;
default:
break;
}
}
Run Code Online (Sandbox Code Playgroud) 当我学习p/invoke时,与使用.net方法相比,我可以看到一些明显的性能提升,因为它通过系统dll查询信息
例如,通过在此代码中导入dll
[DllImport("psapi.dll", SetLastError = true)]
static extern bool GetProcessMemoryInfo(IntPtr hProcess, out PROCESS_MEMORY_COUNTERS Memcounters, int size);
Run Code Online (Sandbox Code Playgroud)
我可以访问有关该过程的信息,这样我就可以质疑我需要知道的关于它的内存使用情况.
但正如我在链接Win32_PerfFormattedData_PerfProc_Process和Win32_PerfRawData_PerfProc_Process中所注意到的那样,我似乎可以访问P/invoke未使用的类并查询非常具体的信息.
uint64 IODataOperationsPerSec;
uint64 IOOtherOperationsPerSec;
uint64 IOReadBytesPerSec;
uint64 IOReadOperationsPerSec;
uint64 IOWriteBytesPerSec;
uint64 IOWriteOperationsPerSec;
uint64 IODataBytesPerSec;
uint64 IOOtherBytesPerSec;
uint32 PageFaultsPerSec;
uint64 PageFileBytes;
uint64 PageFileBytesPeak;
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,32位/ 64位进程也有分离的功能
所以在这里我可以肯定地知道,我正在得到我需要查询的内容,然后我注意到我可以通过该类获得所有我需要的东西,我可以在.net中找到一个等价的我猜(wmi)但是我在寻找确切的是,一类为1,我一定会知道我查询正确的32位任务和64位任务和2个柜台都集中在一类I/O,CPU Time,Memory usage和性能问题,这是一个相当notisble性能与使用.net方法相比获得了收益.
所以问题是:
如何通过使用像P/invoke这样的方法而不是自己的.net类来访问该类?
实际上我发现有关托管.net的计数器的最有趣的链接是This Link,我想这相当于上面的win32链接.
我试图在winforms应用程序中实现一个图像按钮,因为我可以...使用asp.net时很容易,问题似乎是(我怀疑)当鼠标位于图片框内的图像上时它没有响应或没有触发mouseEnter事件
它看起来如果我有一个小于pictureBox大小的图片它会接受触发事件的原因但是在pictureBox中的图像上它不会?
诀窍是将pictureBox设置为sizeMode = zoom.当鼠标悬停在"imageButton"上时再做两件事:将PictureBox的大小更大一点+将光标更改为手
所以我会用asp.net获得一种鼠标效果
有没有人有这个问题?起初我试过mouseHover,然后我认为输入会做得更好,因为它只需要鼠标通过图片框的边框...进入和悬停事件对我不起作用...
编辑:
事件确实触发,我可以看到,如果我最初将sizemode设置为CenterImage并且在事件内部我要求sizemode = zoom,那么效果剂量会发生..但cursor.current = Cursors.Hand不会改变.
当我尝试通过其他问题学习时,仍然无法让它发挥作用
到目前为止,这是我的代码,试图尽可能彻底.
活动(点击)
var resluts = []; //its a collections of id's - list items of unsorted list as strings
$('#next').click(function() {
var RLength = resluts.length;
alert(resluts);
});?
Run Code Online (Sandbox Code Playgroud)
ajax POST
function UbpdateSecondStage(arr) {
var WebMethod ="GetSecondStageData";
var page ="Default.aspx/";
var target = page + WebMethod;
var SendParameters = Sys.Serialization.JavaScriptSerializer.serialize(arr);
jQueryAjxUpdt(target, SendParameters);
}
function jQueryAjxUpdt(targetUrl, SentPars) {
$.ajax({
type: 'POST',
url: targetUrl,
data: {
'sentobj':SentPars
},
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
//alert(data);
}
});
}
Run Code Online (Sandbox Code Playgroud)
C#
[WebMethod] …Run Code Online (Sandbox Code Playgroud) 我在并行呼叫中做错了什么?
static void Main(string[] args)
{
TasteAll<HotCupOf>(TurnCoffeeVenMachineOn);
}
public static void TasteAll<Mode>(Action<Mode> Make)
{
foreach (Mode mode in Enum.GetValues(typeof(Mode)))
{
Task.Factory.StartNew(() => Make(mode) );
//Make(mode); //<-- Works Fine with normal call
}
Console.ReadLine();
}
enum HotCupOf
{
Black,
Latte,
Cappuccino,
Mocha,
Americano,
Espresso,
Chocolate,
Tea
}
public static void TurnCoffeeVenMachineOn(HotCupOf SelectedDrink)
{
Console.WriteLine(SelectedDrink);
}
Run Code Online (Sandbox Code Playgroud) 使用新的 Empty网站应用程序
我想通过一个包含css属性的自定义值的fie将样式应用于aspx页面,我不确定哪种方法更好.
我还在测试这个概念,我有一个包含这些值的文件:
width;100px width;130px background-color;#aac93f
Run Code Online (Sandbox Code Playgroud)
这些值不是硬编码的,而是由另一个应用程序生成的
我想把它读进应用程序.
我能想到我知道的两种方式:
`File.ReadAllLines` or `File.ReadAllText`.
Run Code Online (Sandbox Code Playgroud)
然后通过代码隐藏通过proccessed数据设置html元素样式属性
htmltag.Style.Add("width", setting1)....etc
Run Code Online (Sandbox Code Playgroud)
要么
我还可以从动态/程序化数据加载样式表
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<!-- and put a C# server code like below -->
<%=someVariableOrCsMethodReturnedValue%>
</head>
Run Code Online (Sandbox Code Playgroud)
这样将保存带有加载值的格式化样式.
是为css样式加载自定义值的方法?
c# ×9
.net ×4
asp.net ×3
.net-4.0 ×1
ajax ×1
css ×1
enums ×1
html-parsing ×1
javascript ×1
jquery ×1
jquery-ui ×1
mouseenter ×1
mouseevent ×1
mousehover ×1
performance ×1
pinvoke ×1
process ×1
sendmail ×1
stopwatch ×1
webforms ×1
webmethod ×1
winforms ×1