2011-03-28 177 views
4

我正在編寫一個簡單的個人應用程序,它具有瀏覽器控件,我希望它自動「刷新」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

回答

2

它已經一段時間,因爲我使用的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

1

我可以給你在這一點上最好的建議涉及現有的API,用於基於.NET的Web瀏覽器自動化:

http://watin.org/

由於與所需的按鈕div標籤真的似乎只使用類名稱標識自己,可以使用最新版本的watin中包含的Find.BySelector(「」)代碼。