规格: Windows 7的; 硒2.39.0; Java - Eclipse
我目前正在使用Selenium通过三种不同的浏览器(Chrome,IE9和Firefox)测试webApp。 webApp有一个菜单栏,并且有下拉菜单(经典)。 我需要将鼠标设置在该菜单栏的一个项目上并等待下拉菜单出现,然后我需要单击其中一个下拉菜单项。
我的代码:
WebElement div_menu = driver.findElement(By.xpath("//div[text() = 'Trigger of the dropdown menu']"));
WebDriverWait wait = new WebDriverWait(driver, 300);
Actions builder = new Actions(driver);
builder.moveToElement(div_menu).build().perform();
WebElement item_to_click = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("Link_inside_the_dropdown_menu")));
item_to_click.click();
当我开始测试时会发生有趣的事情。 (FYI浏览器逐个出现,也就是说,所有测试都是针对一个浏览器执行的,然后继续使用其他浏览器,而不是线程化。)
如果鼠标指针在执行测试时位于浏览器上(因为它们未完全最大化),则结果如下:
现在,让我们看看当我将鼠标移出浏览器窗口时会发生什么。
如您所见,三种浏览器的代码相同。这里有趣的变量是mouse_in_browser和mouse_out_browser。 我无法想象问题会是什么。 如果您需要任何额外信息,请不要犹豫。
非常感谢你!
答案 0 :(得分:1)
我设法让Firefox无论物理鼠标在哪里都能正常工作。 我用这种方式初始化它:
//Firefox initialization
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);
对于我来说,这对我有用。还不是其他两个。
来源:Selenium WebDriver mouse actions moveToElement doesn't raise mouseout event on Firefox Linux