可能有人知道為什么我無法觸發(fā) MouseClick 事件。這是我的 HTML 標(biāo)記:<app-invoice-details-customer-search _ngcontent-ydd-c36="" class="customer-search-input" _nghost-ydd-c40=""><div _ngcontent-ydd-c40=""><div _ngcontent-ydd-c40="" class="form-group search-group"><input _ngcontent-ydd-c40="" aria-label="Number" class="form-control mat-autocomplete-trigger" name="searchBox" type="search" placeholder="Valitse asiakas" autocomplete="off" role="combobox" aria-autocomplete="list" aria-expanded="false" aria-haspopup="true"><span _ngcontent-ydd-c40="" class="search-icon"></span><span _ngcontent-ydd-c40="" class="clear-search"></span><mat-autocomplete _ngcontent-ydd-c40="" class=""><!----></mat-autocomplete></div></div></app-invoice-details-customer-search>我的目標(biāo)是將鼠標(biāo)單擊“客戶搜索輸入”。單擊后,輸入字段必須處于活動狀態(tài)且光標(biāo)位于其上,之后我想發(fā)送 KeyEvents 以寫入“1159”。不幸的是,如果我只發(fā)送到這個字段值,它就不起作用,因為在每個寫入數(shù)字后的網(wǎng)頁都會在自己的數(shù)據(jù)庫中搜索過濾后的客戶。因此,我嘗試了三種基本方法來實現(xiàn)它。其中之一使用 JavaScript:var coordinates = document.getElementsByClassName("customer-search-input")[0].getBoundingClientRect();var ev = new MouseEvent('click', { 'view': window, 'bubbles': true, 'cancelable': true, 'screenX': coordinates.x, 'screenY': coordinates.y});var el = document.elementFromPoint(coordinates.x, coordinates.y);el.dispatchEvent(ev);這段代碼幾乎可以在控制臺面板上運行,并且我確信它在正確的位置進行了點擊,因為之前添加了事件偵聽器。但是沒有任何反應(yīng)。focus() 的第二步也無濟于事。document.getElementsByClassName("customer-search-input")[0].focus();還嘗試了 Cefsharp 瀏覽器的第三步,用精確的坐標(biāo)點擊那里,但再次不起作用。browser.GetBrowser().GetHost().SendMouseMoveEvent(750, 306, False, CefEventFlags.None)Thread.Sleep(100)browser.GetBrowser().GetHost().SendMouseClickEvent(750, 306, MouseButtonType.Left, False, 1, CefEventFlags.None)Thread.Sleep(100)browser.GetBrowser().GetHost().SendMouseClickEvent(750, 306, MouseButtonType.Left, True, 1, CefEventFlags.None)我注意到了什么。當(dāng)代碼運行時,如果我自己點擊瀏覽器字段,該頁面默認(rèn)加載搜索字段。我也試過在頁面加載之前以編程方式點擊,但這沒有幫助。哪里有問題?看起來已點擊,但字段仍未激活??赡苁?ChromiumBrowser 設(shè)置中的問題?或者我可以嘗試其他一些方法嗎?
單擊搜索框以使用 CefSharp 激活它
慕俠2389804
2023-02-24 15:50:22