WatIn Find.By方法中的谓词

时间:2013-03-29 11:58:19

标签: c# watin

在Watin脚本中我想附加到另一个浏览器的条件 - “新IE的句柄不等于当前IE的句柄”,这是我的代码:

var hwnd = currentIE.hWnd;
var newIE= Browser.AttachTo<IE>(Find.By("hwnd", handle => !handle.Equals(hwnd)  ));

Visual Studio发出警告:

"suspicious comparison: there is no type in the solution which is inherited from both 'string' and 'System.IntPtr'

这里有什么问题?

1 个答案:

答案 0 :(得分:1)

我不知道Watin是什么,但显然handlehwnd有不同的类型(stringIntPtr),没有必要比较它们与Equals

无论哪一个是字符串,您都可以尝试将其转换为IntPtr

static IntPtr ParseIntPtr (string s)
{
    s = s.Replace ("0x", "");
    return (IntPtr) int.Parse(s, System.Globalization.NumberStyles.AllowHexSpecifier);
}

(我采用了方法from here)。