java试图分配较弱的访问权限错误

ris*_*p89 16 java compiler-errors selenium-rc

[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
Run Code Online (Sandbox Code Playgroud)

对于一个相当简单的代码,我遇到了错误:

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();
  }


}
Run Code Online (Sandbox Code Playgroud)

是我如何使用Wait类.请帮我理解这个错误.

Rob*_*bin 27

有问题的线是下面两个

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

您尝试通过仅包可见的until方法覆盖publiccom.thoughtworks.selenium.Wait类中具有访问权限的until方法.

您无法覆盖方法并降低可见性.您只能提高可见性(例如覆盖protected方法并制作方法public)

因此,修复方法是将public关键字添加到这些方法中

new Wait("") {public boolean until() {return false;}};session().open("/");
new Wait("") {public boolean until() {return false;}};session().click("id=btnLogin-button");
Run Code Online (Sandbox Code Playgroud)

  • @Richard没有,这是不对的.受保护的方法对于所有子类都是可见的,也是包外的子类.因此,使包可见会增加某些情况(同一包中的另一个类)的可见性,但在其他情况下(另一个包中的子类)也会降低可见性. (2认同)