所以我的問題是: 我在這個應用程序中獲得了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. 有上下文菜單關閉外線C#鼠標點擊
- 7. Android上下文菜單不再出現在模擬器中
- 8. 在MVC5上點擊kendo上下文菜單調用視圖
- 9. 如何模擬物理android菜單按鈕上的點擊?
- 10. 下拉菜單上點擊jquery
- 11. 上下文菜單單擊Android
- 12. wpf上下文菜單左鍵單擊
- 13. 上下文菜單左鍵單擊
- 14. Xpages右鍵單擊上下文菜單
- 15. 右鍵單擊上下文菜單jquery
- 16. 菜單點擊下拉JS
- 17. 點擊下拉菜單
- 18. 點擊appium中的浮動上下文菜單
- 19. 錯誤處理上下文菜單中的點擊事件
- 20. 簡單的jQuery上下文菜單點擊問題
- 21. Jqgrid上的上下文菜單點擊Jqgrid
- 22. e.target是身體上點擊時的上下文菜單可見
- 23. 「上下文相關」右鍵單擊菜單的設計模式
- 24. 模擬GearVR上的點擊
- 25. 在javascript中模擬點擊
- 26. 在Windows Shell中操作右鍵單擊上下文菜單
- 27. 在Selenium IDE中的「右鍵單擊」調出上下文菜單
- 28. 如何在Silverlight中設置右鍵單擊上下文菜單?
- 29. 在上下文菜單中右鍵單擊後獲取值PrimeFaces
- 30. 如何在WPF中右鍵單擊按鈕上下文菜單?
通常不會。這往往是由另一個進程擁有的窗口,或者被埋在其他窗口的層次結構中。沒有好方法來獲得窗口句柄。看看Spy ++。 – 2012-08-10 13:53:43