Web驱动程序:SendKeys(整数)不适用于Firefox 29

时间:2014-05-21 14:33:49

标签: java selenium selenium-webdriver webdriver

我正在使用Firefox 29和WebDriver java 2.41.0绑定来自动化测试场景。有一个方案是输入一个整数到一个输入框,它与Firefox 28一起工作,现在没有使用v29,即最新的FF版本。我为此写的代码是:

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

请帮我解决这个问题。

4 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

下面的快速测试对我有用。我理解JS不是进行浏览器模拟的正确方法,因为他们使用浏览器本机api,所以应该始终首先使用webdriver方法,但是认为它会在硒中修复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);

答案 2 :(得分:0)

您可以查看以下几点

  • 您能否确保没有应用程序更改,我的意思是定位器返回单个节点元素。
  • 您还可以发布您获得的例外情况。要解决此问题,需要这些详细信息。

答案 3 :(得分:0)

在向框中发送值之前我做的一件事就是清除它,同时,我发送的值总是一个字符串,解析应该由页面/代码完成,因为你需要验证用户输入了什么。 但我同意skv,我们需要看到实际错误被抛出。