无法使用Geb在highcharts中声明轴标签文本

时间:2014-09-04 14:43:38

标签: highcharts selenium-webdriver phantomjs selenium-chromedriver geb

我正在编写一个geb测试,用于在高位图中断言轴标签。

我编写的测试在使用selenium chrome驱动程序运行时起作用。当我使用phantomjs运行时,它会失败。

//Selector in GEB

$(id:"graph-id").find("g.highcharts-legend-item").find("tspan").text()

这会在Chrome中按预期返回。它在phantomjs中返回空。

我们必须为我们的CI构建使用phantomj。

3 个答案:

答案 0 :(得分:0)

我的机器上没有幻像,但你可以试试这个并告诉我们它是否正常工作?

$("#graph-id .highcharts-legend-item").find("tspan").text()

答案 1 :(得分:0)

如果由于某种原因geb不能正确支持你的phantomjs驱动程序,你可以直接通过浏览器执行javascript选择器:

def webElements = browser.driver.executeScript("""return document.querySelectorAll("#graph-id g.highcharts-legend-item tspan"); """)
def gebNavigators = webElements.collect{ new NonEmptyNavigator(browser, it) }

这将为您提供指向所选元素的geb导航器列表。

答案 2 :(得分:0)

我们通过将phantomjs的版本从1.9.7恢复到1.9.1来解决了这个问题 和以下库依赖项:

def seleniumVersion = "2.41.0"
def gebVersion = "0.9.0"

test "org.gebish:geb-spock:$gebVersion"
test "org.seleniumhq.selenium:selenium-support:$seleniumVersion"
test "org.seleniumhq.selenium:selenium-ie-driver:$seleniumVersion"
test "org.seleniumhq.selenium:selenium-chrome-driver:$seleniumVersion"
test( "com.github.detro.ghostdriver:phantomjsdriver:1.0.4" ) {
    transitive = false
}