我想使用C#开发一个web测试辅助工具(c/s程序)。
控制并打开浏览器,输入URL,然后鼠标悬停在页面某个DOM元素上,
就将该元素选中,用兰色框起来,单击这个元素
就可以弹出一个文本框以便输入给这个元素定义一个别名。
选中元素的操作是仿Firebug,IE Developer Toolbar 以及IBM Rational Functional Tester的手形拖拽的操作。
本辅助测试工具的目的是生成符合ruby语言规范的页面所有有意义的元素获取方法实体类,
为ruby+cucumber+watir自动化测试测试查找元素扫平道路。
有没有人给点鼠标悬停时选中元素的实现方法,现在仅仅实现了单击获取元素,谢谢。
控制并打开浏览器,输入URL,然后鼠标悬停在页面某个DOM元素上,
就将该元素选中,用兰色框起来,单击这个元素
就可以弹出一个文本框以便输入给这个元素定义一个别名。
选中元素的操作是仿Firebug,IE Developer Toolbar 以及IBM Rational Functional Tester的手形拖拽的操作。
本辅助测试工具的目的是生成符合ruby语言规范的页面所有有意义的元素获取方法实体类,
为ruby+cucumber+watir自动化测试测试查找元素扫平道路。
有没有人给点鼠标悬停时选中元素的实现方法,现在仅仅实现了单击获取元素,谢谢。
添加引用:using mshtml;
页面上放webBrowser控件。给Url一个网页地址。
放一按钮button,click事件下:
mshtml.HTMLDocument doc1 = (mshtml.HTMLDocument)this.webBrowser1.Document.DomDocument;
mshtml.HTMLDocumentEvents2_Event hevent = (mshtml.HTMLDocumentEvents2_Event)doc1; hevent.onmouseout += new HTMLDocumentEvents2_onmouseoutEventHandler(hevent_onmouseout);
hevent.onmouseover += new HTMLDocumentEvents2_onmouseoverEventHandler(hevent_onmouseover);
hevent.onmousedown += new HTMLDocumentEvents2_onmousedownEventHandler(hevent_onmousedown);
其中的三个方法:
string oldcolor = "";
void hevent_onmouseover(IHTMLEventObj e)
{
oldcolor = e.toElement.style.border;
e.toElement.style.border = "2px solid blue";
//this.textBox2.Text = e.toElement.parentElement.innerHTML;
string path = "";
IHTMLElement element = e.toElement;this.textBox3.Text = element.className;
while (element.parentElement != null)
{
IHTMLElementCollection elementCollection = element.parentElement.children as IHTMLElementCollection;
path = element.tagName + "(" + elementCollection.length + ")/" + path;
element = element.parentElement;
}
this.textBox3.Text = path;
} void hevent_onmouseout(IHTMLEventObj pEvtObj)
{
pEvtObj.fromElement.style.border = oldcolor;
} void hevent_onmousedown(IHTMLEventObj pEvtObj)
{
mshtml.HTMLDocument doc1 = (mshtml.HTMLDocument)this.webBrowser1.Document.DomDocument;
mshtml.HTMLDocumentEvents2_Event hevent = (mshtml.HTMLDocumentEvents2_Event)doc1;
hevent.onmouseover -= new mshtml.HTMLDocumentEvents2_onmouseoverEventHandler(this.hevent_onmouseover);
pEvtObj.toElement.style.background = oldcolor;
hevent.onmouseout -= new HTMLDocumentEvents2_onmouseoutEventHandler(this.hevent_onmouseout);
hevent.onmousedown -= new HTMLDocumentEvents2_onmousedownEventHandler(hevent_onmousedown);
}
这样就实现了。运行,点击下按钮,然后鼠标放在某个DOM元素上,
就将该元素选中,就会用兰色框起来。
联系我:[email protected]