WebDriverException: Error: Permission denied to access property "navigator"

WebDriverException: Error: Permission denied to access property "navigator"

这是遇到的 "magic" 的处理方法:代码在 Ubuntu 16.04 上运行良好,在 Ubuntu 15.10 上运行正常但出现错误:

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

我有以下代码:

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

明白了,环境有问题,就是不知道哪里弄错了?请给我建议,我该如何解决这个问题。谢谢。

一般来说,原因是 Ubuntu 和 Firefox free 的版本不同。如果有人看到这样的错误,我建议从终端执行 "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 无法解决。一方面你可能会发现一个错误(并不是每个客户都使用最新版本的浏览器),但在我的情况下 - 这是一个额外的痛苦。并更新了整个系统- 为球迷提供娱乐,尽管可能在您的团队中有一个人被表现为拖延症,在这种情况下,您很幸运。

我收到错误:

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

当我使用 Firefox 45.7 和 gecko 驱动程序时

我将 Firefox 升级到 52.2,错误消失了。