Geb, как автоматически заполнять подсказки имени пользователя/пароля

Я использую geb со spock в качестве основы для приемочных испытаний. Все идет отлично, за исключением того, что есть проблема с парой тестов, когда при перенаправлении на другой веб-сайт нам предлагается ввести имя пользователя и пароль для доступа к сайту. Поскольку это приглашение браузера, а не форма, которую я могу отправить, есть ли способ установить это либо автоматически в профиле браузера для сайта, либо установить его в драйвере?

Я тестирую Firefox в качестве типа браузера.

Изменить: вот мой файл build.gradle

apply plugin: 'eclipse'
apply plugin: 'groovy'
apply plugin: 'idea'

repositories {
    mavenCentral()
}

task wrapper(type: Wrapper) {
    gradleVersion = '1.3'
}

// The drivers we want to use
ext.drivers = ["firefox"]

dependencies {
    groovy group: 'org.codehaus.groovy', name: 'groovy', version: '1.8.6'

    def gebVersion = "0.7.2"
    def seleniumVersion = "2.26.0"

    // If using Spock, need to depend on geb-spock
    testCompile "org.codehaus.geb:geb-spock:$gebVersion"
    testCompile "org.spockframework:spock-core:0.6-groovy-1.8"

// Drivers
    drivers.each { driver ->
        testCompile "org.seleniumhq.selenium:selenium-$driver-driver:$seleniumVersion"
    }
}

drivers.each { driver ->
    task "${driver}Test"(type: Test) {
        testReportDir = reporting.file("$name/tests")
        testResultsDir = file("$buildDir/test-results/$name")

        systemProperty "geb.build.reportsDir", reporting.file("$name/geb")
        systemProperty "geb.env", driver
        // If you wanted to set the baseUrl in your build…
        // systemProperty "geb.build.baseUrl", "http://myapp.com"
    }
}

task test(overwrite: true, dependsOn: drivers.collect { tasks["${it}Test"] })

person James Murphy    schedule 15.02.2013    source источник


Ответы (2)


Я понятия не имею, будет ли это работать, так как в журнале изменений для 2.25.0 упоминается, что это еще не реализовано ни для одного драйвера, но есть способ переключиться на оповещение с помощью WebDriver, а затем использовать authenticateUsing(учетные данные) метод.

В вашей спецификации Spock вы можете попробовать следующее:

driver.switchTo().alert().authenticateUsing(new UserAndPassword('user', 'pass'))
person erdi    schedule 18.02.2013
comment
Эрди, спасибо, попробую. Я нашел статью, в которой упоминается, что вы можете использовать плагин AutoAuth, установленный с профилем. См.: watirmelon.com /2012/06/27/ Хотя я не буду использовать Watir (поскольку это библиотека Ruby), я, вероятно, могу попробовать что-то эквивалентное с установкой spock, поскольку она использует драйвер Selenium. Кроме того, сейчас нас интересует только тестирование в одном браузере (Firefox), поэтому это решение подходит. Я вернусь сюда, чтобы узнать, какое решение мы использовали для решения этой проблемы. - person James Murphy; 19.02.2013

Чтобы решить эту проблему, я использовал профиль браузера в Firefox и установил плагин, который автоматически заполнял подсказки. Затем в тестах Geb Acceptance вы настраиваете его так, чтобы он автоматически использовал Firefox с правильным профилем.

person James Murphy    schedule 06.05.2015