我正在尋找一種解決方法,在IE中將另一個div拖放到另一個上。Selenium WebDriver IE9的DragAndDrop
的本地調用
(新的行動(TestSetup.webDriver))dragAndDrop(sourceElement,destinationElement).perform()。
適用於Chrome和Firefox,但在IE中失敗。
任何指針都會有幫助。
我正在尋找一種解決方法,在IE中將另一個div拖放到另一個上。Selenium WebDriver IE9的DragAndDrop
的本地調用
(新的行動(TestSetup.webDriver))dragAndDrop(sourceElement,destinationElement).perform()。
適用於Chrome和Firefox,但在IE中失敗。
任何指針都會有幫助。
不知道這是否已解決,但您可能需要執行單獨的鼠標單擊並移動操作,而無需從Selenium拖放。理論上它應該是同樣的東西,但可能會出現這樣的情況,即當你有一個元素被保存,並且硒在另一個元素被關注並被拖拽時沒有找到另一個元素。
我會建議獲取這兩個元素並保存位置,然後單擊並保存一個元素,然後將其移動到其他元素的位置,然後在該位置釋放鼠標。這應該繞過任何瀏覽器的具體問題,並只關注鼠標和逐個像素的窗口。
如果仍然不起作用,請提供更多具體細節到硒錯誤和網頁。
初始化您的IE驅動程序時,請將RequireWindowFocus
選項設置爲true。
這是它是如何在C#中完成:
var ieOptions = new InternetExplorerOptions
{
RequireWindowFocus = true
}
var driver = new InternetExplorerDriver(ieOptions);
如果使用的是遠程硒服務器:
DesiredCapabilities capabilities = DesiredCapabilities.InternetExplorer();
capabilities.SetCapability("requireWindowFocus", true);
var driver = new RemoteWebDriver(Constants.RemoteSeleniumServer, capabilities);
根據文檔:
推出了 「requireWindowFocus」 能力進入IE驅動程序。當與「nativeEvents」功能結合使用時,驅動程序將嘗試在執行鼠標或鍵盤事件之前將當前IE窗口置於前臺。
此外,當requireWindowFocus功能設置爲true時,高級用戶交互現在將使用Windows SendInput()API執行交互。要啓用此行爲,請在創建IE驅動程序實例時將requireWindowFocus功能的值設置爲「true」。此新功能的默認值爲「false」。該功能目前被認爲是極其實驗性的;使用需要您自擔風險。
哈哈,我相信這是瀏覽器的權利?但業務仍然希望在IE上完成。 – user262102
我很抱歉,我做了大拇指並添加了評論,但直到現在我還不知道如何接受答案。我現在已經接受了以前的答案。但我很感激你的幫助。 – user262102