2

これまでに行ったサンプルコードを以下に投稿しましたが、 Exception が発生していますjava.lang.NullPointerException

基本クラス:

public class TestBase {
    public static WebDriver driver= null;

    @BeforeSuite
    public void initialize(){
        System.setProperty("webdriver.chrome.driver","...chromedriver_win32\\chromedriver.exe");
        WebDriver driver=new ChromeDriver();
        driver.manage().window().maximize();
        driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
        driver.get("abcd.com");
    }

    @AfterSuite
    public void TearDownTest()
    {
        TestBase.driver.quit();
    }
}

ログインページ:

public class LoginPage {

    WebDriver driver;

    public LoginPage(WebDriver driver)
    {
        this.driver= driver;
    }

    @FindBy(how=How.XPATH, using="//*[@id='email_id']") WebElement EmailTextBox;
    @FindBy(how=How.XPATH, using="//*[@id='password']")WebElement PassworTextBox;
    @FindBy(how=How.XPATH, using="//*[@id='frm_login']/div[4]/input") WebElement LoginButton;

    public void setemail(String strmail)
    {
        EmailTextBox.sendKeys(strmail);
    }

    public void setpwd(String strpwd)
    {
        try
        {
            PassworTextBox.sendKeys(strpwd);
        }
        catch (TimeoutException e) 
        {
            System.out.println("Time out exception " + e);
        } 
        catch (ElementNotSelectableException e) {
            System.out.println("Element not selectable exception " + e);
        } catch (NoSuchElementException e) {
            System.out.println("No such element found " + e);
        } catch (ElementNotVisibleException e) {
            e.printStackTrace();
        } catch (Exception e) {
            System.out.println("Something Wrong " + e);
        }
    }

    public void ClickLoginBtn()
    {
        LoginButton.click();
    }
}

LoginTest クラス:

public class LoginTest extends TestBase{

    @Test
    public void init()
    {
        System.out.println("In the init method");
        LoginPage lg=PageFactory.initElements(driver, LoginPage.class);
        lg.setpwd("123123");
        lg.setemail("abc@gmail.com");
        lg.ClickLoginBtn();
    }
}

NullPointerExceptionユーザー名とパスワードの設定中に取得しています。手伝っていただけませんか?

私はPageFactoryでPOMを初めて使用するので、解決方法がわかりませんが、誰かがそれを手伝ってくれるなら、それは私にとって大きな助けになります。

4

3 に答える 3

1

次のように、 WebDriverインスタンスを 2 回初期化しないでください。driver

public static WebDriver driver= null;

WebDriver driver=new ChromeDriver();

グローバル宣言を次のように保持します。

public static WebDriver driver= null;

行を次のように変更します。

driver=new ChromeDriver();
于 2019-06-26T09:54:21.537 に答える
0

driver.get("abcd.com");ページの読み込みが完了し、EmailTextBox と PassworTextBox を定義する WebElements を見つけることができるように、タイムアウトを追加してみてください。
または、このように WebDriverWait を使用します

new WebDriverWait(driver, 10))
   .until(ExpectedConditions.visibilityOf(By.id("someid")));
于 2019-06-26T09:49:10.167 に答える