无法在原始类型 void 上调用 sendKeys(String)
Cannot invoke sendKeys(String) on the primitive type void
我是 selenium 的新手,我正在使用页面工厂实现数据驱动的框架工作,但不断收到以下错误:
Cannot invoke sendKeys(String) on the primitive type void
在尝试设置我的测试脚本时 - 用于以下内容:
String sEmail = ExcelUtil.getCellData (1,1);
loginpage.setEmail().sendKeys(sEmail);
这是我的 java 文件:
package pages;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.How;
public class AmazonLoginPage {
WebDriver driver;
//public static void main(String[] args) {
public AmazonLoginPage (WebDriver driver) {
this.driver=driver;
}
//Using FindBy for locating Elements
@FindBy(how=How.CSS, using="#ap_email") WebElement emailTextBox;
@FindBy(how=How.CSS, using="#ap_password") WebElement passwordTextBox;
@FindBy(how=How.CSS, using="#continue") WebElement continueButton;
@FindBy(how=How.CSS, using="#signInSubmit") WebElement signInSubmitButton;
//This method is used to set email in the email text box
public void setEmail() {
emailTextBox.sendKeys();
}
//public void setEmail(String strEmail) {
//emailTextBox.sendKeys();
//This method is used Continue after entering email
public void clickOnContinueButton() {
continueButton.click();
}
//This method is used to set password in the password text box
public void setPassword (String strPassword) {
passwordTextBox.sendKeys(strPassword);
}
//This method is used to click on the Sign In Button
public void clickOnSignInSubmitButton () {
signInSubmitButton.click();
}
}
这是我的测试脚本-
package appModules;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.support.PageFactory;
import pages.AmazonHomePage;
import pages.AmazonLoginPage;
import utility.ExcelUtil;
public class SignIn_Action {
WebDriver driver;
public static void Execute (WebDriver driver) throws Exception {
//Get values from Excel sheet, passing parameters to getCellData method
AmazonLoginPage loginpage = PageFactory.initElements(driver, AmazonLoginPage.class);
AmazonHomePage homepage = PageFactory.initElements(driver, AmazonHomePage.class);
homepage.clickOnSignIn();
String sEmail = ExcelUtil.getCellData (1,1);
String sPassword = ExcelUtil.getCellData(1, 2);
loginpage.setEmail().sendKeys(sEmail);
loginpage.clickOnContinueButton();
loginpage.clickOnSignInSubmitButton();
}
}
Return setEmail()
方法的类型是void,所以你不能在这个方法上调用sendKeys()
。
这应该替换为:
loginpage.setEmail().sendKeys(sEmail);
与:
loginpage.setEmail(sEmail);
和您的 setEmail 方法应该采用这样的字符串参数:
public void setEmail(String email) {
emailTextBox.sendKeys(email);
}
我是 selenium 的新手,我正在使用页面工厂实现数据驱动的框架工作,但不断收到以下错误:
Cannot invoke sendKeys(String) on the primitive type void
在尝试设置我的测试脚本时 - 用于以下内容:
String sEmail = ExcelUtil.getCellData (1,1);
loginpage.setEmail().sendKeys(sEmail);
这是我的 java 文件:
package pages;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.How;
public class AmazonLoginPage {
WebDriver driver;
//public static void main(String[] args) {
public AmazonLoginPage (WebDriver driver) {
this.driver=driver;
}
//Using FindBy for locating Elements
@FindBy(how=How.CSS, using="#ap_email") WebElement emailTextBox;
@FindBy(how=How.CSS, using="#ap_password") WebElement passwordTextBox;
@FindBy(how=How.CSS, using="#continue") WebElement continueButton;
@FindBy(how=How.CSS, using="#signInSubmit") WebElement signInSubmitButton;
//This method is used to set email in the email text box
public void setEmail() {
emailTextBox.sendKeys();
}
//public void setEmail(String strEmail) {
//emailTextBox.sendKeys();
//This method is used Continue after entering email
public void clickOnContinueButton() {
continueButton.click();
}
//This method is used to set password in the password text box
public void setPassword (String strPassword) {
passwordTextBox.sendKeys(strPassword);
}
//This method is used to click on the Sign In Button
public void clickOnSignInSubmitButton () {
signInSubmitButton.click();
}
}
这是我的测试脚本-
package appModules;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.support.PageFactory;
import pages.AmazonHomePage;
import pages.AmazonLoginPage;
import utility.ExcelUtil;
public class SignIn_Action {
WebDriver driver;
public static void Execute (WebDriver driver) throws Exception {
//Get values from Excel sheet, passing parameters to getCellData method
AmazonLoginPage loginpage = PageFactory.initElements(driver, AmazonLoginPage.class);
AmazonHomePage homepage = PageFactory.initElements(driver, AmazonHomePage.class);
homepage.clickOnSignIn();
String sEmail = ExcelUtil.getCellData (1,1);
String sPassword = ExcelUtil.getCellData(1, 2);
loginpage.setEmail().sendKeys(sEmail);
loginpage.clickOnContinueButton();
loginpage.clickOnSignInSubmitButton();
}
}
Return setEmail()
方法的类型是void,所以你不能在这个方法上调用sendKeys()
。
这应该替换为:
loginpage.setEmail().sendKeys(sEmail);
与:
loginpage.setEmail(sEmail);
和您的 setEmail 方法应该采用这样的字符串参数:
public void setEmail(String email) {
emailTextBox.sendKeys(email);
}