小编Lon*_*der的帖子

Selenium - 获取元素html而不是文本值

通过该代码,我从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)

c# html-parsing selenium-webdriver

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

使用StopWatch类进行性能测试的Helper类

在这个示例代码中,我使用一个简单的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的建议操作,即使它应该一直是相同的.只要确保你真正有经验并且熟悉所有课程.

.net c# stopwatch

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

获取鼠标 - 当前DOM元素obj [while event-resize] jQuery-ui

我已经设置了一个跟踪鼠标事件的功能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)

jquery jquery-ui jquery-ui-resizable

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

将动态表格或div内容作为电子邮件正文内容发送

我有一个页面(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)

c# asp.net sendmail .net-4.0

5
推荐指数
1
解决办法
7792
查看次数

Task.Factory.StartNew(的someMethod(withParam)).continueWith(sameMethod(differentParam)).等待()

并行化以下代码的正确语法是什么?

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)

.net c# task-parallel-library

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

使用pinvoke访问系统对象并查询进程

当我学习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_ProcessWin32_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链接.

.net c# performance pinvoke process

5
推荐指数
1
解决办法
772
查看次数

将光标更改为pictureBox

我试图在winforms应用程序中实现一个图像按钮,因为我可以...使用asp.net时很容易,问题似乎是(我怀疑)当鼠标位于图片框内的图像上时它没有响应或没有触发mouseEnter事件

它看起来如果我有一个小于pictureBox大小的图片它会接受触发事件的原因但是在pictureBox中的图像上它不会?

诀窍是将pictureBox设置为sizeMode = zoom.当鼠标悬停在"imageButton"上时再做两件事:将PictureBox的大小更大一点+将光标更改为手

所以我会用asp.net获得一种鼠标效果

有没有人有这个问题?起初我试过mouseHover,然后我认为输入会做得更好,因为它只需要鼠标通过图片框的边框...进入和悬停事件对我不起作用...

编辑:

事件确实触发,我可以看到,如果我最初将sizemode设置为CenterImage并且在事件内部我要求sizemode = zoom,那么效果剂量会发生..但cursor.current = Cursors.Hand不会改变.

c# mouseevent mouseenter winforms mousehover

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

jQuery/ajax POST一个Array /对象到C#代码后面

当我尝试通过其他问题学习时,仍然无法让它发挥作用

到目前为止,这是我的代码,试图尽可能彻底.

活动(点击)

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)

javascript c# asp.net ajax webmethod

4
推荐指数
1
解决办法
7230
查看次数

迭代每个Enum值需要并行化

我在并行呼叫中做错了什么?

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)

.net c# enums task-parallel-library

3
推荐指数
1
解决办法
1082
查看次数

以编程方式将样式应用于asp.net网站

使用新的 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样式加载自定义值的方法?

css c# asp.net webforms

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