3

Вот сделка с «магией» Засада: код прекрасно работает на Ubuntu 16.04, Ubuntu 15.10 на падение с ошибками:WebDriverException: Ошибка: Доступ запрещен доступ к собственности «Навигатор»

org.openqa.selenium.WebDriverException: Error: Permission denied to access property "navigator" 
org.openqa.selenium.WebDriverException: Error: Permission denied to access property "document" 

I имеют следующий код:

import geb.spock.GebReportingSpec 
import geb.waiting.WaitTimeoutException 

class LoginSpec extends GebReportingSpec { 
    def "#0 go to login FB"() { 
    when: 
     browser.go("https://www.facebook.com/") 
    then: 
     delay(9) 
     if (browser.title != "Facebook") { 
      browser.title == "Facebook - Log In or Sign Up" 
      browser.currentUrl == "https://www.facebook.com/" 
      waitFor(30){ 
       $("#loginbutton").size() == 1 
      } 
      $("#email").value(Config.FB_USERNAME) 
      $("#pass").value(Config.FB_PASSWORD) 
      println("entered credentials") 
      $("#loginbutton").click() 
     } 
     delay(9) 
    } 

    void delay(Long seconds){ 
     try { 
      waitFor(seconds){ } 
     } catch (WaitTimeoutException ignored){ } 
    } 
} 

GebConfig.groovy:

import org.openqa.selenium.firefox.FirefoxDriver 

waiting { 
    timeout = 2 
} 
environments { 
    firefox { 
     driver = { new FirefoxDriver() } 
    } 
} 
baseUrl = "https://google.com" 
testReportDir = new File("$buildDir/test-reports/UT") 
testResultsDir = new File("$buildDir/test-results/UT") 

И на build.gradle линии

firefoxTest { 
    systemProperty "webdriver.gecko.driver", "/usr/bin/geckodriver" 
} 

Ошибка:

LoginSpec > #0 go to login FB FAILED 
    org.openqa.selenium.WebDriverException: Error: Permission denied to access property "navigator" 
    Build info: version: '3.0.0-beta4', revision: '3169782', time: '2016-09-29 10:30:04 -0700' 
    System info: host: 'tb-buildagent01-infrastructure-ci', ip: '10.4.1.4', os.name: 'Linux', os.arch: 'amd64', os.version: '4.2.0-30-generic', java.version: '1.8.0_66-internal' 
    Driver info: org.openqa.selenium.firefox.FirefoxDriver 
    Capabilities [{rotatable=false, raisesAccessibilityExceptions=false, marionette=true, appBuildId=20160606114238, version=, platform=LINUX, proxy={}, command_id=1, specificationLevel=0, acceptSslCerts=false, browserVersion=47.0, platformVersion=4.2.0-30-generic, XULappId={ec8030f7-c20a-464f-9b0e-13a3a9e97384}, browserName=Firefox, takesScreenshot=true, takesElementScreenshot=true, platformName=Linux, device=desktop}] 
    Session ID: 5af3ae72-af52-4760-9b9c-5a1261b52113 
     at org.openqa.selenium.remote.http.W3CHttpResponseCodec.createException(W3CHttpResponseCodec.java:126) 
     at org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:93) 
     at org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:42) 
     at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:163) 
     at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:82) 
     at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:602) 
     at org.openqa.selenium.remote.RemoteWebElement.execute(RemoteWebElement.java:284) 
     at org.openqa.selenium.remote.RemoteWebElement.getAttribute(RemoteWebElement.java:136) 
     at geb.navigator.NonEmptyNavigator.setInputValue(NonEmptyNavigator.groovy:687) 
     at geb.navigator.NonEmptyNavigator.setInputValues_closure40(NonEmptyNavigator.groovy:680) 
     at groovy.lang.Closure.call(Closure.java:414) 
     at geb.navigator.NonEmptyNavigator.setInputValues(NonEmptyNavigator.groovy:679) 
     at geb.navigator.NonEmptyNavigator.value(NonEmptyNavigator.groovy:417) 
     at LoginSpec.#0 go to login FB(LoginSpec.groovy:81) 
    org.openqa.selenium.WebDriverException: Error: Permission denied to access property "document" 
    Build info: version: '3.0.0-beta4', revision: '3169782', time: '2016-09-29 10:30:04 -0700' 
    System info: host: 'tb-buildagent01-infrastructure-ci', ip: '10.4.1.4', os.name: 'Linux', os.arch: 'amd64', os.version: '4.2.0-30-generic', java.version: '1.8.0_66-internal' 
    Driver info: org.openqa.selenium.firefox.FirefoxDriver 
    Capabilities [{rotatable=false, raisesAccessibilityExceptions=false, marionette=true, appBuildId=20160606114238, version=, platform=LINUX, proxy={}, command_id=1, specificationLevel=0, acceptSslCerts=false, browserVersion=47.0, platformVersion=4.2.0-30-generic, XULappId={ec8030f7-c20a-464f-9b0e-13a3a9e97384}, browserName=Firefox, takesScreenshot=true, takesElementScreenshot=true, platformName=Linux, device=desktop}] 
    Session ID: 5af3ae72-af52-4760-9b9c-5a1261b52113 

Я понимаю, что что-то не так с окружающей средой, но я не знаю, где я сделал ошибку? Пожалуйста, дайте мне совет, как я могу это исправить. Спасибо.

ответ

2

В общем, причиной были разные версии Ubuntu и Firefox бесплатно. Если такая ошибка, чтобы увидеть кого-то, я рекомендую выполнить «apt-cache policy firefox» с терминала. В Ubuntu 16.04 теперь вы можете увидеть:

Installed: 49.0+build4-0ubuntu0.16.04.1 
    Candidate: 49.0+build4-0ubuntu0.16.04.1 
    Version table: 
*** 49.0+build4-0ubuntu0.16.04.1 500 
     500 http://ua.archive.ubuntu.com/ubuntu xenial-updates/main amd64 Packages 
     500 http://security.ubuntu.com/ubuntu xenial-security/main amd64 Packages 
     100 /var/lib/dpkg/status 
    45.0.2+build1-0ubuntu1 500 
     500 http://ua.archive.ubuntu.com/ubuntu xenial/main amd64 Packages 

И на Ubuntu 15.10:

Candidate: 47.0+build3-0ubuntu0.15.10.1 
Version table: 
    47.0+build3-0ubuntu0.15.10.1 0 
     500 http://azure.archive.ubuntu.com/ubuntu/ wily-updates/main amd64 Packages 
     500 http://security.ubuntu.com/ubuntu/ wily-security/main amd64 Packages 
     100 /var/lib/dpkg/status 
    41.0.2+build2-0ubuntu1 0 
     500 http://azure.archive.ubuntu.com/ubuntu/ wily/main amd64 Packages 

И они должны быть решены. И откатная версия базы данных selenium и других зависимостей не может помочь, потому что на лицевой стороне могут быть вещи, которые не поддерживаются браузером (не говоря уже о FB), например: var result = window.Notification.requestPermission(callback) и это https://developer.mozilla.org/ru/docs/Web/API/Notification/requestPermission :) И да, вы правы, казалось (просмотреть ошибку), что страница пуста - для ajax не получается. С одной стороны, вы можете найти ошибку (не каждый клиент, который использует последнюю версию браузера), но в моем случае - это плюс боль в заднице. И обновить всю систему - развлечение для поклонника, хотя в вашей команде может быть человек, который выражается как промедление, и в этом случае вам повезло.

0

я получаю сообщение об ошибке:

org.openqa.selenium.JavascriptException: Error: Permission denied to access property "navigator" 

Когда я использую Firefox 45,7 и геккон драйвер

Я модернизировал Firefox до 52,2, и исчезает ошибка.

+0

только что прочитал ответ [ниже] (https://stackoverflow.com/a/40164351/4874915) –