6

这是遇到的“魔术”的处理:代码在 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

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

4

2 回答 2

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没有工作。一方面,您可能会发现一个错误(不是每个客户都使用最新版本的浏览器),但在我的情况下 - 这是一个额外的痛苦。并更新整个系统 - 为球迷娱乐,虽然它可能在你的团队中有一个人被表示为拖延,在这种情况下,你很幸运。

于 2016-10-20T20:54:48.100 回答
0

我收到了错误:

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

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

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

于 2017-06-29T11:04:42.930 回答