2014-05-21 69 views
0

我使用Firefox 29和WebDriver java 2.41.0綁定來自動執行測試場景。有一種方案可以將一個整數輸入到一個輸入框中,該輸入框在Firefox 28中運行FINE並且現在以v29失敗,即最新的FF版本。我寫的代碼是:WebDriver:SendKeys(整數)不適用於Firefox 29

int inputString = 123456; 
driver.FindElement(By.Id("tinymce")).SendKeys(inputString); 

請幫我解決這個問題。

+0

可以嘗試做一個技巧'SendKeys(inputString.toString())'? – olyv

回答

0

您可以檢查以下幾點

  • 可以確保沒有應用程序的變化,我的意思是定位器返回單個節點元素。
  • 你也可以發佈你得到的例外。要解決此問題,需要這些詳細信息。
0

在向箱子發送值之前,我要做的一件事是清除它,並且我發送的值始終是一個字符串,解析應該由頁面/代碼完成,因爲您需要驗證用戶已進入。 但我同意skv,我們需要看到引發的實際錯誤。

1

快速測試爲我工作。我明白JS是不會做的瀏覽器模擬的正確方法,一個始終應首先使用webdriver的方法,因爲他們使用的瀏覽器原生API,但認爲這將解除你而bug修復硒

DesiredCapabilities desiredCapabilities = DesiredCapabilities.firefox(); 
desiredCapabilities.setCapability(CapabilityType.HAS_NATIVE_EVENTS,true); 
WebDriver driver = new FirefoxDriver(desiredCapabilities); 
driver.get("http://yizeng.me/2014/01/31/test-wysiwyg-editors-using-selenium-webdriver/"); 
WebElement frame = driver.findElement(By.id("tinymce-editor_ifr")); 
driver.switchTo().frame(frame); 
WebElement body = driver.findElement(By.id("tinymce"));  
JavascriptExecutor js = (JavascriptExecutor)driver; 
js.executeScript("arguments[0].innerHTML = '<h1>Heading</h1>Hello There'",body); 
+0

感謝您的解決方法!但這不是正確的做法。總是更好地使用瀏覽器本地方法。 Arran給出了正確的答案,並將在2.42.0版本中修復。 –

+0

當然,我明白JS並不是正確的做法,但認爲它會解決你的問題,同時修復了硒中的錯誤。更新了答案 – nilesh

+0

非常感謝Nilesh。這很有幫助。 –