单击Gmail刷新按钮

问题描述:

我正在编写一个简单的个人应用程序,它具有浏览器控件,我希望它自动“刷新”gmail以便比默认情况下更频繁地检查它。有猴子脚本这样做,但我试图增加我的个人风格。单击Gmail刷新按钮

无论如何,我环顾四周,发现了一切,但我可​​以在csharp中使用浏览器控件做什么。

我发现这一点:

// Link the ID from the web form to the Button var 
theButton = webBrowser_Gmail.Document.GetElementById("Refresh"); 

// Now do the actual click. 
theButton.InvokeMember("click"); 

但它与空回来的“theButton”所以它不会调用任何东西。

任何人有任何建议吗?

+0

不幸的是gmail的刷新按钮没有典型的“Id”属性。该按钮的标记如下所示:

Refresh
我不确定如何定位此元素。 – invalidsyntax 2011-03-28 17:20:30
+0

不知道是否有意为了防止这种类型的事情?如果是这样的话,那真的会使我的日子变得更糟...... – ErocM 2011-03-28 17:31:02

它已经一段时间,因为我使用的JavaScript,但考虑到其他的答案,并评论说,没有与元素相关联没有真正的ID,你可以这样做以下:

  1. 搜寻所有事业部与Role =='Button'的属性和InnerHtml =='Refresh'。
  2. 找到正确的InnerHtml后,获取元素。
  3. 调用找到的元素的点击。

同样,这可能是在吹烟,但我以为我会把它扔出去。

编辑:刚才意识到你正在用C#和浏览器控件来做这件事,然而,这个概念仍然是一样的。

+0

浏览器控件是否提供了我可以循环使用的div的集合,或者我需要解析html吗? – ErocM 2011-03-28 19:19:43

+0

你好。它被称为DOM,并有充足的文档。有jQuery允许聪明(你猜对了:)查询,如果它是xhtml我估计你可以使用xpath查询 – sehe 2011-03-28 19:28:01

我可以给你在这一点上最好的建议涉及现有的API,用于基于.NET的Web浏览器自动化:

http://watin.org/

由于与所需的按钮div标签真的似乎只使用类名称标识自己,可以使用最新版本的watin中包含的Find.BySelector(“”)代码。