2

我有一個簡單的代碼,我點擊一個鏈接,它打開了一個新窗口。但是在執行腳本時,單擊就會在同一個元素上雙擊並打開2個窗口。單一的點擊作爲雙擊

我使用InternetExplorer的司機

String baseURL = "URL_to_opened"; 

DesiredCapabilities cap = DesiredCapabilities.internetExplorer(); 

cap.setCapability(InternetExplorerDriver.NATIVE_EVENTS, false); 

cap.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,true); 

WebDriver driver = new InternetExplorerDriver(cap); 

driver.get(baseURL); 

driver.findElement(By.xpath("Element to be clicked")).click(); 
+0

這個問題可能是你把裏面的XPath表達式,如果你有一些元素,其匹配,儘量限制你的XPath表達式,以確保它是獨一無二的。 – InferOn

+0

嘗試將'NATIVE_EVENTS'設置爲'true'並讓我們知道狀態。謝謝 – DebanjanB

+0

如果我將「NATIVE_EVENTS」設置爲false,則sendkeys工作速度太慢。 –

回答

1

這裏是回答你的問題:

當你與Selenium 3.4.0工作,IEDriverServer 3.4.0IE(v 10/11),您可以考慮通過以下配置屬性通過DesiredCapabilities C姑娘:

Native Events:由於InternetExplorerDriver是僅Windows,它會嘗試使用所謂的「原生」,或操作系統級別的事件在瀏覽器中進行鼠標和鍵盤操作。這與使用模擬JavaScript事件進行相同操作形成了鮮明對比。使用本機事件的好處是它不依賴於JavaScript沙箱,並且它確保瀏覽器內正確的JavaScript事件傳播。但是,當IE瀏覽器窗口沒有焦點時,以及嘗試將鼠標懸停在元素上時,目前有一些鼠標事件問題。

Browser Focus:面臨的挑戰是,IE瀏覽器本身出現不充分尊重我們發送的IE瀏覽器窗口(WM_MOUSEDOWN和WM_MOUSEUP)的Windows消息,如果該窗口沒有焦點。具體來說,被點擊的元素將收到圍繞它的焦點窗口,但點擊不會被元素處理。可以說,我們根本不應該發送消息;相反,我們應該使用SendInput()API,但該API明確要求窗口具有焦點。

您可以找到有關這個link這些事實更多的文檔。

DesiredCapabilities cap = DesiredCapabilities.internetExplorer(); 
cap.setCapability(InternetExplorerDriver.NATIVE_EVENTS, true); 
cap.setCapability(InternetExplorerDriver.REQUIREWINDOWFOCUS, true); 
cap.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,true); 
WebDriver driver = new InternetExplorerDriver(cap); 

讓我知道如果這個回答你的問題。

+0

這個問題解決了使用基本java代碼的問題。 Maven項目與Selenium 3.0.1協同工作並且沒有任何更新的版本。在硒的舊版本中,存在點擊問題。 –

+0

好消息:)我按照maven隊列在IE-Maven組合中沒有觀察到任何問題?你提了一個嗎?你能分享鏈接嗎?謝謝 – DebanjanB

+0

不,我還沒有提出這個問題。 –