4

Webドライバーを使用してSelenium2.21.0ビルドを実行すると、Firefox12.0に対して実行すると次のエラーが発生します。

org.openqa.selenium.InvalidElementStateException: Cannot perform native interaction: Could not load native events component.
Command duration or timeout: 20.08 seconds
Build info: version: '2.2.1', revision: '16551', time: '2012-04-11 21:42:35'
System info: os.name: 'Windows 7', os.arch: 'x86', os.version: '6.1', java.version: '1.6.0_26'
Driver info: driver.version: RemoteWebDriver
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:175)
    at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:128)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:459)
    at org.openqa.selenium.remote.ExecuteMethod.execute(ExecuteMethod.java:47)
    at org.openqa.selenium.remote.RemoteMouse.mouseMove(RemoteMouse.java:89)
    at org.openqa.selenium.interactions.internal.MouseAction.moveToLocation(MouseAction.java:31)
    at org.openqa.selenium.interactions.ClickAndHoldAction.perform(ClickAndHoldAction.java:39)
    at org.openqa.selenium.interactions.CompositeAction.perform(CompositeAction.java:32)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoCachedMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:229)
    at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:52)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:117)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:121)
    at isishelper.ActionHelper.placement_placeSampleOnContainer(ActionHelper.groovy:195)
...

この場合の私のコードは次のとおりです。

List sourceSamples = sourceTable.findElements((By.className("x-grid-row")))
List poolTargets = driver.findElements(By.className("pool-box"))
target = poolTargets[0]    
def source = sourceSamples[0]
// Then drag and drop the sample to target
(new Actions(driver)).dragAndDrop(source, target).perform()

私の側でドライバーを設定する際のエラーではなく、Firefox12.0より前にSelenium2.21がリリースされたため、これには機能が欠けていると思いますか?

ドライバーのプロパティを確認する:

driver.getCapabilities().asMap().each { 
             index, value -> println("$index : $value") 
}
browserName : firefox
nativeEvents : false
takesScreenshot : true
version : 12.0

しかし、プロファイルを使用してドライバーを作成しているときに、nativeEvents=trueを取得します。

profile.setEnableNativeEvents(true); 
println profile.getProperties()
driver = new FirefoxDriver(profile)
[enableNativeEvents:true, 
class:class org.openqa.selenium.firefox.FirefoxProfile,
additionalPreferences:org.openqa.selenium.firefox.Preferences@82d37]
4

3 に答える 3

4

明らかにネイティブイベントは、webdriver2.21ではまだサポートされていません。変更ログによると、FF10と11のみが現在この機能を実装しています。

これが問題に関連しているかどうかはわかりませんが、コードの最後の行で、perform()を呼び出す前にbuild()を呼び出すべきではありませんか?(これはJavaで行う必要があります)

より多くのスタックトレースが役立つ可能性があります。このエラーはどの行で発生しますか?ネイティブイベントを明示的にfalseに設定しようとしましたか?

于 2012-05-17T20:01:55.483 に答える
2

Selenium 2.29.0は、FF18(ネイティブイベント用)をサポートしてリリースされています。更新するためのリンクは次のとおりです:http ://selenium.googlecode.com/git/rb/CHANGES 。

FF18にアップデートしている可能性があり、selenium-webdriver(2.29.0)が役立つ場合があります。

于 2013-01-22T10:02:01.830 に答える
1

Selenium 2.22.0がリリースされ、変更ログにはFirefox 12のネイティブイベントがサポートされるようになったと記載されています。テストしたところ、うまく機能しているようです。

于 2012-06-06T20:49:21.030 に答える