Html Groovy Geb can';t捕获下拉列表

Html Groovy Geb can';t捕获下拉列表,html,drop-down-menu,groovy,webdriver,geb,Html,Drop Down Menu,Groovy,Webdriver,Geb,我正试图使用Geb框架从网页中获取所有链接(由a标记表示)。但我没能在下拉列表中捕捉到这些链接。例如,我无法捕获学院和学校和地图和位置下的下拉列表。在上面代码的输出中,下拉列表中的每个项目都是占据一行的“空字符串”。输出的开始部分如下所示: @Grapes([ @Grab("org.codehaus.geb:geb-core:0.7.2"), @Grab("org.seleniumhq.selenium:selenium-firefox-driver:2.25.0"),

我正试图使用
Geb
框架从网页中获取所有链接(由
a
标记表示)。但我没能在下拉列表中捕捉到这些链接。例如,我无法捕获
学院和学校
地图和位置
下的下拉列表。在上面代码的输出中,下拉列表中的每个项目都是占据一行的“空字符串”。输出的开始部分如下所示:

@Grapes([
    @Grab("org.codehaus.geb:geb-core:0.7.2"),
    @Grab("org.seleniumhq.selenium:selenium-firefox-driver:2.25.0"),
    @Grab("org.seleniumhq.selenium:selenium-support:2.25.0")
])
import geb.Browser
import org.openqa.selenium.firefox.FirefoxDriver

Browser.drive {

  go "http://www.asu.edu/"
  $("li a").each { a ->
     println(a.text())
  }

}

这是因为您只能获取可见元素的文本。这是因为text()只返回用户可见的文本

看起来该下拉列表的样式是:hover pseudoclass应用于它时打开的。有,你可以用它将光标指向元素,但它似乎不起作用-我发现一些线索表明Firefox驱动程序处理得不好。不幸的是,目前无法使用jQuery模拟:hover,因此您唯一的选择是手动使元素可见:

SIGN IN
ASU Home
My ASU
Colleges & Schools















Map & Locations











Contact ASU
Freshman
Transfer
Graduate
International
Military | Veteran
Home-Educated
Online
Prospective Students

之后,调用text()时应返回链接中的文本。另一个选项是使下拉列表不仅在:hover时可见,而且在应用一个类并在mouseenter/mouseleave处理程序中添加/删除该类时也可见。但是,只有在您可以修改为您正在自动/测试的页面提供服务的应用程序的情况下,这才是可能的。

这是因为您只能获取可见元素的文本。这是因为text()只返回用户可见的文本

看起来该下拉列表的样式是:hover pseudoclass应用于它时打开的。有,你可以用它将光标指向元素,但它似乎不起作用-我发现一些线索表明Firefox驱动程序处理得不好。不幸的是,目前无法使用jQuery模拟:hover,因此您唯一的选择是手动使元素可见:

SIGN IN
ASU Home
My ASU
Colleges & Schools















Map & Locations











Contact ASU
Freshman
Transfer
Graduate
International
Military | Veteran
Home-Educated
Online
Prospective Students
之后,调用text()时应返回链接中的文本。另一个选项是使下拉列表不仅在:hover时可见,而且在应用一个类并在mouseenter/mouseleave处理程序中添加/删除该类时也可见。但这只有在你可以修改为你正在自动化/测试的页面提供服务的应用程序时才有可能