【发布时间】:2019-05-09 16:11:57
【问题描述】:
我正在编写集成/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
我也尝试了 chrome 的 2.43 版。
附加信息:
- Mac 莫哈韦沙漠
- 硒 v 3.7.0
- geb v 2.2
- spockcore v 1.1-groovy-2.4
- groovy v 2.4.5
- webdrivermanager v 3.0.0
如果有人感兴趣,测试在做什么:通过单击选择一个 vis.js 元素。休眠一秒钟(此处未包含代码),然后通过双击打开/激活它。或者拖动它。
除了 selenium 操作之外,chromedriver 和 geb 一切正常。只是现在我需要 doubleClick 和 moveByOffset(而不是移动到元素!),我才遇到让事情正常工作的问题
我在这里发现了一个类似的问题,可能是同一个问题。也许不吧。但是没有提供解决方案:Selenium Web Driver DragAndDropToOffset in Chrome not working?
非常感谢任何帮助。
【问题讨论】:
-
我认为,如果您还可以将我们指向一个公开可用的网站来运行您的测试,或者您可以通过以下方式在此处提供 HTML 页面源代码,那么您将有更好的机会获得好的答案编辑你的问题。请始终尝试通过提供MCVE 来帮助您的潜在帮助者,而不是仅仅提供任何人都无法编译和运行的 sn-ps。
标签: selenium spock geb chrome-web-driver webdrivermanager-java