所以我的問題是: 我在這個應用程序中獲得了C#中的Windows窗體應用程序和webBrowser控件。例如,當您右鍵點擊YouTube上的視頻時,會出現一個上下文菜單。現在,是否有可能以編程方式右鍵單擊webBrowser控件,然後再以編程方式單擊該上下文菜單中的特定條目?c#在上下文菜單中模擬點擊
回答
是的,但您始終必須從相同的像素開始,或者更好地說一個實際的像素範圍,因此您可以確定點擊的結果將是必需的。另外你不能通過指定它的文本來點擊一個項目,你必須從圖形的角度來完成所有的程序設計(從X - Y軸上只有2維)。這是大多數網絡機器人用於各種目的的方式。
嗯,但這不是很安全,是嗎?假設某人有不同的屏幕分辨率,並且鼠標點擊不準確,上下文菜單中的條目將不會被點擊。 – VGD 2012-08-10 13:10:43
你是對的。那麼解決方案就是讓實例適用於許多預定義的場景。 – Freeman 2012-08-10 13:13:50
通過使用簡單的圖像識別來找到沒有對其進行硬編碼的確切位置,效果更佳。 – Viezevingertjes 2012-08-10 13:26:31
您是否真的需要模擬上下文菜單的點擊或者只是想要足夠好的動作?如果是這樣,您可以從ContextMenu.Items列表中獲取該項目,並假設該按鈕會引發Click事件。如果您確實需要至少顯示上下文菜單,則可以調用ContextMenu.Show事件。這一切都假定您的WebBrowser控件的上下文菜單是公共的(不是某些第三方繼承的控件隱藏它或某物)。
我試過了,問題是,webBrowser.ContextMenu總是返回_null_,然後我只是試圖禁用上下文菜單,這工作,但只適用於上下文菜單是默認webbrowser上下文菜單的網站。所以我認爲youtube使用它自己的上下文菜單的事實使得無法通過webBrowser.ContextMenu訪問上下文菜單。如果你知道如何訪問它,告訴我;) – VGD 2012-08-11 08:48:01
- 1. 模擬菜單項上點擊在Robolectric
- 2. 模擬鼠標點擊下拉菜單
- 3. 模擬菜單項點擊
- 4. 上下文菜單在菜單項上消失點擊
- 5. 在菜單項上點擊創建上下文菜單
- 6. dataGridView受控上下文菜單點擊
- 7. 點擊圖片的上下文菜單
- 8. 左鍵點擊上下文菜單
- 9. 禁用點擊上下文菜單項
- 10. 模擬點擊jQuery UI菜單?
- 11. 在上下文菜單下單擊查找節點
- 12. 模擬右鍵單擊系統托盤圖標,然後單擊C++中的上下文菜單
- 13. Android菜單沒有顯示在模擬器上點擊菜單按鈕
- 14. 菜單點擊打開一個上下文菜單欄
- 15. 有上下文菜單關閉外線C#鼠標點擊
- 16. Android上下文菜單不再出現在模擬器中
- 17. 如何在Android模擬器中調用上下文菜單
- 18. 觸發點擊在JQuery中的上下文菜單
- 19. 攔截IE上下文菜單在WebBrowser控件中點擊
- 20. EGOTableViewPullRefresh - 模擬viewDidLoad上的下拉菜單
- 21. 在MVC5上點擊kendo上下文菜單調用視圖
- 22. 如何模擬物理android菜單按鈕上的點擊?
- 23. C,C++中的Shell上下文菜單
- 24. 在Bootstrap中點擊下拉菜單
- 25. 下拉菜單上點擊jquery
- 26. Chrome右鍵單擊上下文菜單
- 27. 上下文菜單單擊Android
- 28. wpf上下文菜單左鍵單擊
- 29. 上下文菜單左鍵單擊Qt
- 30. 右鍵單擊上下文菜單jquery
通常不會。這往往是由另一個進程擁有的窗口,或者被埋在其他窗口的層次結構中。沒有好方法來獲得窗口句柄。看看Spy ++。 – 2012-08-10 13:53:43