Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

Here is the deal with the "magic" encountered: The code works fine on Ubuntu 16.04, Ubuntu 15.10 on a fall with errors:

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

I have following code:

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")

And at build.gradle lines

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

Error:

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

I understand, that something wrong with environment, but I don't know where I made mistake? Please, give me advice, how can I fix this. Thank you.

like image 352
Volodymyr Fedorchuk Avatar asked Oct 20 '16 11:10

Volodymyr Fedorchuk


1 Answers

In general, the reason was different versions of Ubuntu and Firefox free. If such a mistake to see someone, I recommend to execute "apt-cache policy firefox" from terminal. On Ubuntu 16.04 now, you can see:

  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

And on 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

And they have to be addressed. And the rollback version of selenium and other dependencies data base can not help, because at the front end may be things that are not supported by the browser (not to speak of the FB), for example: var result = window.Notification.requestPermission(callback) and it is https://developer.mozilla.org/ru/docs/Web/API/Notification/requestPermission :) And yes, you're right it seemed (to view error) that the page is empty - for ajax not work out. On the one hand you may find a bug (not every customer he uses the latest version of the browser), but in my case - this is a plus pain in the ass. And to update the entire system - entertainment for the fan, although it may be in your team has a person who is expressed as procrastination, and in this case, you're in luck.

like image 169
Volodymyr Fedorchuk Avatar answered Nov 20 '22 11:11

Volodymyr Fedorchuk