一尘不染

Selenium WebDriver鼠标操作moveToElement不会在Firefox Linux上引发mouseout事件

selenium

我一直在尝试使用带有Firefox 19的Selenium WebDriver在我的网页中测试工具提示。
我基本上是在尝试使用鼠标动作将鼠标悬停在附加有工具提示的元素上,以测试工具提示的显示和悬停。在另一个元素上以测试工具提示是否隐藏。第一个操作工作正常,但是将鼠标悬停在另一个元素上时,工具提示仍然可见。手动测试网页时不会发生此问题。
有人遇到过这个问题吗?我正在使用Ubuntu 12.04。


阅读 475

收藏
2020-06-26

共1个答案

一尘不染

看来Advanced Actions
API依赖于本机事件,默认情况下,Linux版本的Firefox中禁用了本机事件。因此,必须在WebDriver实例中显式启用它们。

FirefoxProfile profile = new FirefoxProfile();
//explicitly enable native events(this is mandatory on Linux system, since they
//are not enabled by default
profile.setEnableNativeEvents(true);
WebDriver driver = new FirefoxDriver(profile);
另外,就我而言,我需要将WebDriver升级到2.31版,因为moveToElement即使显式启用了本机事件,hover()操作也无法在2.30上正常工作。在Linux上使用WebDriver的2.31版和Firefox的17和19版对此进行了测试。有关更多信息,您可以检查以下链接:http
//code.google.com/p/selenium/wiki/AdvancedUserInteractions#Native_events_versus_synthetic_events
2020-06-26