在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'
这里有什么问题?
答案 0 :(得分:1)
我不知道Watin是什么,但显然handle
和hwnd
有不同的类型(string
和IntPtr
),没有必要比较它们与Equals
。
无论哪一个是字符串,您都可以尝试将其转换为IntPtr
:
static IntPtr ParseIntPtr (string s)
{
s = s.Replace ("0x", "");
return (IntPtr) int.Parse(s, System.Globalization.NumberStyles.AllowHexSpecifier);
}
(我采用了方法from here)。