所以我一直試圖解決這個問題好幾個小時。我不知道我做錯了什麼。讓Java Webdriver的「向下箭頭」動作起作用
這是一個我正在尋找的字段是<input type="text" id="id_attendees" name="attendees">
。當我輸入時,會創建一個js下拉列表。當我按下鍵盤上的向下箭頭時,它工作正常,並選擇最佳選擇。當我在IDE中執行keyDown --- id=id_attendees --- \40
時,它工作正常,並且也選擇了該選項。
我不能讓它做同樣在Java中的webdriver雖然
Actions actionObject = new Actions(driver);
actionObject.sendKeys(Keys.ARROW_DOWN);
^不起作用。
driver.findElement(By.id("id_attendees")).sendKeys(Keys.ARROW_DOWN);
^不起作用
我試圖Keys.DOWN在這兩種情況下,那也不行。我創建了一個文字String altm = "\u0040";
,所有這些都是輸入一個@
符號。
我也嘗試了一堆其他的東西以及沒有任何工作。我不知道我錯過了什麼。
編輯1:
@Roddy謝謝! - 鑑於鏈接我補充說,做工作(進口DefaultSelenium和WebDriverBackedSelenium後,以下
DefaultSelenium sel = new WebDriverBackedSelenium(driver,vars.siteurl);
sel.fireEvent("//input[@id='id_attendees']", "keydown");
編輯2: - > DOH不工作我有過激顯然
可能與正在填充/創建下拉列表的JavaScript並沒有被您的輸入觸發(因此沒有任何東西向下箭頭* *)。可能想看看[這個問題] (http://stackoverflow.com/questions/9202061/test-autocomplete-with-selenium-webdriver)。 – 2012-08-13 20:05:51
謝謝!這至少能夠起作用,下次必須牢記在心。從程序員的角度來看,你對於如何避免它有什麼想法嗎? – StanM 2012-08-13 20:13:45
一般來說,如果您正在測試的是某種JavaScript功能,那麼您需要確認測試邏輯實際上首先觸發JavaScript。驗證,回調,自動完成和表單通常是可能發生此類事情的地方,所以通過一個JS來看看它是如何被觸發並相應地制定測試通常是一個好主意。 – 2012-08-13 20:20:31