首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Geb将值设置为选择问题

Geb将值设置为选择问题
EN

Stack Overflow用户
提问于 2013-08-08 14:57:48
回答 1查看 3.6K关注 0票数 1

我很难从列表框中选择一个值

代码语言:javascript
复制
<select name="max">
    <option value="25">25</option>
    <option value="50" selected="selected">50</option>
    <option value="100">100</option>
</select>

在我的页面里我有:

代码语言:javascript
复制
class TableSectionModule extends Module {

    static base = { $('#runList') }

    static content = {
               tablePaginationSelect { $("select", name : "max") }
    }
}

我在我的规范中使用了所有这些电话:

代码语言:javascript
复制
runs.table.tablePaginationSelect = "100"

我也尝试过这样做:

代码语言:javascript
复制
 runs.table.tablePaginationSelect.value('100')

但我有个例外

代码语言:javascript
复制
org.openqa.selenium.WebElement.setSelected()V
java.lang.NoSuchMethodError: org.openqa.selenium.WebElement.setSelected()V
    at org.openqa.selenium.support.ui.Select.selectByValue(Select.java:176)
    at geb.navigator.NonEmptyNavigator.setSelectValue(NonEmptyNavigator.groovy:591)
    at geb.navigator.NonEmptyNavigator.setInputValue(NonEmptyNavigator.groovy:548)
    at geb.navigator.NonEmptyNavigator.setInputValues_closure33(NonEmptyNavigator.groovy:542)
    at geb.navigator.NonEmptyNavigator.setInputValues(NonEmptyNavigator.groovy:541)
    at geb.navigator.NonEmptyNavigator.value(NonEmptyNavigator.groovy:319)
    at geb.content.NavigableSupport.methodMissing(NavigableSupport.groovy:123)
    at geb.content.NavigableSupport.propertyMissing(NavigableSupport.groovy:141)

我正在与Geb一起使用Grails,下面是我使用的依赖项:

代码语言:javascript
复制
dependencies {
        // specify dependencies here under either 'build', 'compile', 'runtime', 'test' or 'provided' scopes e.g.

        // runtime 'mysql:mysql-connector-java:5.1.22'

        test("org.seleniumhq.selenium:selenium-chrome-driver:$seleniumVersion")
        test("org.seleniumhq.selenium:selenium-firefox-driver:$seleniumVersion")

        // You usually only need one of these, but this project uses both
        //test "org.codehaus.geb:geb-spock:$gebVersion"
        test "org.spockframework:spock-grails-support:0.7-groovy-2.0"
        test "org.gebish:geb-spock:0.9.0"
        test "org.codehaus.geb:geb-spock:0.7.2"
        test "org.seleniumhq.selenium:selenium-support:2.0a7"

    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-09 04:09:59

.value('100')语法是正确的。我使用了一个示例gradle+geb (所以没有Grails,以及稍微不同的依赖项)项目,我已经躺在那里,重新创建了下拉列表和模块,并且能够用这个语法来影响它。

在不使用Module的情况下尝试它。完全绕开它,看看这能给你带来什么:

代码语言:javascript
复制
$('select' name:'max').value('100')

更新

下面是我在屏幕上观看这些变化时所做的事情(通过一对正常检查println):

代码语言:javascript
复制
    def sel = $('select', name:'max')
    sel.size() == 1
    System.out.println(sel.getClass().name)
    System.out.println(sel)
    System.out.println(sel.value())
    Thread.sleep( 500 )
    sel.value ( "25"  )
    Thread.sleep( 500 )
    sel.value ( "50")
    Thread.sleep( 500 )
    sel.value ( "100")
    Thread.sleep( 500 )
    System.out.println(sel.value())

此外,一旦您的测试完成,一定要查看您的测试输出。对我自己来说,这是在build/test-results。此外,还可以在gradle:gradlew build --debug上启用调试输出。这会很有帮助的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18129344

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档