Geb withFrame - "результат вызова функции отсутствует 'value'" - PullRequest
0 голосов
/ 11 ноября 2018

Я новичок в использовании withFrames в Гебе и пытаюсь следовать примерам из Книги Геба.

Я пытаюсь получить код для ввода текста и нажать кнопку в рамке.

Предпочтительным способом является определение элемента frame внутри вашей содержащей страницы, но сейчас я просто хочу увидеть, что я делаю неправильно в моем вызове withFrame.

        def "Write and Post a Small Comment" () {
        when:
            MyBlogSpot bs = to MyBlogSpot
        then:
            bs.readMoreLink.click()

            withFrame("comment-editor"){     // <---- this is the line 16 in the error statement
                $('#commentBodyField') << "my text"
                $("button", name:"postCommentSubmit").click()
            }

    }

Выше приведена спецификация.

Элемент, которого я пытаюсь достичь:

<iframe allowtransparency="true" class="blogger- iframe-colorize blogger-comment-from-post" frameborder="0" height="194px" id="comment-editor" name="comment-editor" src="https://www.blogger.com/comment-iframe.g?blogID=3577645066754224503&amp;postID=6815587395142211832&amp;blogspotRpcToken=2994523#%7B%22color%22%3A%22rgb(34%2C%2034%2C%2034)%22%2C%22backgroundColor%22%3A%22rgb(255%2C%20255%2C%20255)%22%2C%22unvisitedLinkColor%22%3A%22rgb(204%2C%20102%2C%2017)%22%2C%22fontFamily%22%3A%22Arial%2C%20Tahoma%2C%20Helvetica%2C%20FreeSans%2C%20sans-serif%22%7D" width="100%" data-resized="true"></iframe>

Независимо от того, какие аргументы я использую для withFrame - даже если я использую withFrame(2) после проверки средства отладки браузера - ошибка, которую я получаю при запуске теста:

at CommentSpec.Write and Post a Small 
Comment(CommentSpec.groovy:17)
    Caused by:
    org.openqa.selenium.WebDriverException: unknown error: call function result missing 'value'
      (Session info: chrome=70.0.3538.77)
      (Driver info: chromedriver=2.32.498550 (9dec58e66c31bcc53a9ce3c7226f0c1c5810906a),platform=Windows NT 6.1.7601 SP1 x86_64) (WARNING: The server did not provide any stacktrace information)
    Command duration or timeout: 0 milliseconds
    Build info: version: '3.6.0', revision: '6fbf3ec767', time: '2017-09-27T15:28:36.4Z'
    System info: host: 'GUY-HP', ip: '192.168.1.2', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_161'
    Driver info: org.openqa.selenium.chrome.ChromeDriver
    Capabilities [{mobileEmulationEnabled=false, hasTouchScreen=false, platform=XP, acceptSslCerts=true, webStorageEnabled=true, browserName=chrome, takesScreenshot=true, javascriptEnabled=true, platformName=XP, setWindowRect=true, unexpectedAlertBehaviour=, applicationCacheEnabled=false, rotatable=false, networkConnectionEnabled=false, chrome={chromedriverVersion=2.32.498550 (9dec58e66c31bcc53a9ce3c7226f0c1c5810906a), userDataDir=C:\Users\Guy\AppData\Local\Temp\scoped_dir12868_17851}, takesHeapSnapshot=true, pageLoadStrategy=normal, unhandledPromptBehavior=, databaseEnabled=false, handlesAlerts=true, version=70.0.3538.77, browserConnectionEnabled=false, nativeEvents=true, locationContextEnabled=true, cssSelectorsEnabled=true}]
    Session ID: da4a617e55935af5a32b5c7c17213231
        at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:214)
        at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:166)
        at org.openqa.selenium.remote.http.JsonHttpResponseCodec.reconstructValue(JsonHttpResponseCodec.java:40)
        at org.openqa.selenium.remote.http.AbstractHttpResponseCodec.decode(AbstractHttpResponseCodec.java:82)
        at org.openqa.selenium.remote.http.AbstractHttpResponseCodec.decode(AbstractHttpResponseCodec.java:45)
        at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:164)
        at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:83)
        at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:586)
        at org.openqa.selenium.remote.RemoteWebDriver$RemoteTargetLocator.frame(RemoteWebDriver.java:912)
        at geb.frame.DefaultFrameSupport.executeWithFrame(DefaultFrameSupport.groovy:57)
        at geb.frame.DefaultFrameSupport.withFrame(DefaultFrameSupport.groovy:36)
        at geb.Page.withFrame(Page.groovy:120)
        at geb.Browser.methodMissing(Browser.groovy:217)
        at geb.spock.GebSpec.methodMissing(GebSpec.groovy:60)
        ... 1 more 

Если есть какой-либо другой код, который мне нужно вставить, пожалуйста, дайте мне знать. ТИА!

1 Ответ

0 голосов
/ 12 ноября 2018

Это похоже на проблему совместимости версий между двоичными файлами.

Ошибка показывает, что вы используете

chrome=70.0.3538.77
Driver info: chromedriver=2.32.498550

Вы хотите загрузить последнюю версию chromedriver 2.43, которая работает с вашей версией Chrome. Смотрите здесь для совместимых версий: Chrome Drivers

...