web-dev-qa-db-fra.com

java tentative d'attribution d'une erreur de privilège d'accès plus faible

[javac] U:\dms-webui-testing\test-Java\dmswebui\CR\TestLogin.Java:16: until() in  cannot override until() in com.thoughtworks.Selenium.Wait; attempting to assign weaker access privileges; was public

J'obtiens au-dessus de l'erreur pour un code assez simple:

package dmswebui.CR;

import org.infineta.webui.Selenium4j.MainTestCase;

public class TestLogin extends MainTestCase {

  @Override
  public void setUp() throws Exception {
    super.setUp();
    startSeleniumSession("ChromeDriver", "somesite");
  }

  public void testMethod() throws Exception {

        new Wait("") {boolean until() {return false;}};session().open("/");
        new Wait("") {boolean until() {return false;}};session().click("id=btnLogin-button");       session().waitForPageToLoad("30000");
        for (int second = 0;; second++) {
            if (second >= 60) fail("timeout 'waitForTextPresent:Logoff' ");
            try { if (session().isTextPresent("Logoff")) break; } catch (Exception e) {}
            Thread.sleep(1000);
        }
        new Wait("") {boolean until() {return false;}};session().click("id=btnUserLogout-button");
        new Wait("") {boolean until() {return false;}};session().click("id=yui-gen0-button");       session().waitForPageToLoad("30000");
  }
  public void tearDown() throws Exception {
    super.tearDown();
    closeSeleniumSession();
  }


}

ici est la façon dont j'utilise la classe Wait. Veuillez m'aider à comprendre cette erreur.

18
riship89

Les lignes avec le problème sont les deux ci-dessous

new Wait("") {boolean until() {return false;}};session().open("/");
new Wait("") {boolean until() {return false;}};session().click("id=btnLogin-button");

Vous essayez de remplacer la méthode until qui dispose d'un accès public dans le com.thoughtworks.Selenium.Wait classe par une méthode until dont seul le package est visible.

Vous ne pouvez pas remplacer une méthode et réduire la visibilité. Vous pouvez uniquement augmenter la visibilité (par exemple, remplacer une méthode protected et la rendre public)

Le correctif consisterait donc à ajouter le mot clé public à ces méthodes

new Wait("") {public boolean until() {return false;}};session().open("/");
new Wait("") {public boolean until() {return false;}};session().click("id=btnLogin-button");
25
Robin