1

无法使用最新 3.0 selenium 和 FF 中的坐标单击按钮。

我正在指定启动 FF48 浏览器、打开登录页面并尝试单击登录按钮的部分代码。使用坐标单击按钮在 Chrome 中工作正常,但在 FF 中失败。

环境:

Browser - FF48 (may be present with previous FF as well)
Selenium - Latest 3.0 beta jar

Works fine in latest Chrome.

代码:

// Launch browser
DesiredCapabilities capabilities = DesiredCapabilities.firefox();
FirefoxProfile profile = new FirefoxProfile();
capabilities.setCapability(FirefoxDriver.PROFILE, profile);
capabilities.setCapability("marionette", true);
webDriver =  new FirefoxDriver(capabilities);

// Open login page and click to Sign button
WebElement we = null;
we = driver.findElement(By.cssSelector("css=input.ZLoginButton[value='Sign In']"));

Actions builder = new Actions(webDriver());
Action action = builder.moveToElement(we, 5, 5).click(we).build();
action.perform();

问题:

我们元素返回正常,但在 FF 中移动到元素失败,相同的代码在 Chrome 中运行良好。我不认为这个问题特别适用于 FF48 并且可能存在于所有 FF 但有趣的事情中,就移动元素和坐标而言,这个问题是否在最新的 selenium 3.0 jar 中?

即使它直接使用也可以正常工作:

we.click();

但是我需要使用坐标单击元素,因为在我的 Ajax 应用程序中,某些元素单击仅适用于坐标,例如:

Action action = builder.moveToElement(we, 5, 5).click(we).build();
action.perform();

有人对最近的问题有想法吗?我确信这在 FF 之前运行良好,并且在 chrome 中已经运行良好。

在此处输入图像描述

4

2 回答 2

2

关于不能与 geckodriver 一起使用的操作类存在一个未解决的问题。我们需要等待它的修复。在 selenium 中记录的问题-> https://github.com/SeleniumHQ/selenium/issues/2285

希望这可以帮助。

于 2016-09-01T17:28:21.790 回答
0

一周后,我禁用了木偶(java):

capability.setCapability("marionette", false);

它修复了一切。不要问我为什么。

于 2017-06-13T10:04:06.333 回答