我正在编写集成/e2e 测试,由于某种原因,任何 selenium 驱动程序命令都看不到与 chromedriver 一起使用,但它们与 firefox 驱动程序和 firefox 无头驱动程序完美配合。
尝试的命令:moveByOffset和doubleClick
尝试了 Geb 的 Interact 方法
interact {
doubleClick(centerClickable)
}
并直接访问网络驱动程序:
def driver = browser.getDriver()
Actions action = new Actions(driver)
WebElement element= driver.findElement(By.className("vis-drag-center"))
def doubleclick = action.doubleClick(element).build()
doubleclick.perform()
这两种方法都适用于 firefox 驱动程序。两者都不适用于 chrome 驱动程序。
GebConfig.groovy 文件是这样设置的:
import io.github.bonigarcia.wdm.WebDriverManager
import org.openqa.selenium.Dimension
import org.openqa.selenium.chrome.ChromeDriver
import org.openqa.selenium.chrome.ChromeOptions
import org.openqa.selenium.firefox.FirefoxDriver
import org.openqa.selenium.firefox.FirefoxOptions
def chromeWebDriverVersion = '70.0.3538.67'
def driverFirefox = {
WebDriverManager.firefoxdriver().setup()
def driver = new FirefoxDriver()
driver.manage().window().setSize(new Dimension(width, height))
return driver
}
// ChromeDriver reference: https://sites.google.com/a/chromium.org/chromedriver/
// Download and configure ChromeDriver using https://github.com/bonigarcia/webdrivermanager
def driverChrome = {
WebDriverManager.chromedriver().version(chromeWebDriverVersion).setup()
def driver = new ChromeDriver()
driver.manage().window().setSize(new Dimension(width, height))
return driver
}
environments {
firefox {
driver = driverFirefox
}
chrome {
driver = driverChrome
}
//driver = driverFirefox
driver = driverChrome
我还尝试了 2.43 版的 chrome。
附加信息:
- 麦克莫哈韦
- 硒 v 3.7.0
- geb v 2.2
- spockcore v 1.1-groovy-2.4
- 时髦的 v 2.4.5
- webdrivermanager v 3.0.0
如果有人感兴趣,测试在做什么:通过单击选择一个 vis.js 元素。休眠一秒钟(此处未包含代码),然后通过双击打开/激活它。或者拖动它。
除了 selenium 动作之外,chromedriver 和 geb 都可以正常工作。只是现在我需要 doubleClick 和 moveByOffset (而不是移动到元素!),我遇到了让事情正常工作的问题
我在这里发现了一个类似的问题,可能是同一个问题。也许不吧。但是没有提供解决方案:Selenium Web Driver DragAndDropToOffset in Chrome not working?
非常感谢任何帮助。