我正在尝试使用函数登录gmail。我从excel表中传递用户名。问题是我的代码返回值但没有在文本框中输入。只是返回null异常,它不会抛出任何错误。
请帮助我,我是selenium webdriver的新手,并且真的不知道接下来要做什么,因为它没有显示任何错误。
public class gmail
{
public static WebDriver driver;
public static void main(String[] args) throws IOException, InterruptedException
{
File file1 = new File("C:\\Selenium\\IEDriverServer_Win32_2.35.3\\IEDriverServer.exe");
System.setProperty("webdriver.ie.driver", file1.getAbsolutePath());
WebDriver driver = new InternetExplorerDriver();
driver.get("www.gmail.com");
FileInputStream file = new FileInputStream(new File("D:\\Automation\\Selenium\\New Folder\\Demo\\Book2.xls")); // Path of the excel where the keywords and data was mentioned
HSSFWorkbook workbook = new HSSFWorkbook(file);
HSSFSheet sheet = workbook.getSheetAt(0);
int d= sheet.getLastRowNum();
System.out.println(d);
for (int i=1;i<=d;i++)
{
Cell cell1=null;
cell1=sheet.getRow(i).getCell(0);
System.out.println(cell1);
if (cell1.getStringCellValue().contains("text"))
{
Cell cell2=null;
cell2=sheet.getRow(i).getCell(1);
System.out.println(cell2);
stg(cell2); //calling function
}
}
}
public static void stg(Cell cell2) throws InterruptedException
{
WebElement un1=driver.findElement(By.name("Email"));
System.out.println(un1);
un1.sendKeys(cell2.getStringCellValue());
}
}
//This is the Output which i am getting:
1
text
seltest10j
Exception in thread "main" java.lang.NullPointerException
at Excel.gmail.stg(gmail.java:63)
at Excel.gmail.main(gmail.java:53)
答案 0 :(得分:0)
似乎您没有将课程字段driver
初始化:
public static WebDriver driver;
同时,您在main
方法中声明了一个名为的本地变量:
WebDriver driver = new InternetExplorerDriver();
代码工作时stg
方法中的代码是否在main
内?这将起作用,因为本地变量实际上已初始化。当你将代码移到main之外时,局部变量不再隐藏类字段,因为你没有初始化它,你会得到一个NullPointerException。
答案 1 :(得分:0)
我强烈建议不要使用Selenium自动化Gmail。它非常复杂,你应该专注于自动化你的OWN应用程序而不是gmail。使用gmail POP3服务器检索电子邮件等。以下是类似question的答案。