我是Selenium和Java的新手。我在我唯一的java类中有近950行代码。当我运行此代码时,它会随机崩溃。有时它会正常工作,有时它会随机崩溃。它就像是随机崩溃的5次中的2次。我正在给出代码的初始部分以及控制台在崩溃之前打印的最后一个字符串。
请帮助。我正在使用Java,Selenium,Eclipse,Win 8,IE 10.我正在使用JDK 8. Eclipse没有显示任何错误,为什么代码崩溃,老实说,我不知道在哪里检查我的代码崩溃的原因。
最后一个请求,我想我在这个问题上提供的信息较少,请告诉我在其中添加更多信息。非常感谢。
我的代码崩溃,它打印的最后一件事是在控制台中的“现在在仪表板中”。
` public class Login {
/**
* @param args
*/
public static void main (String[] args) throws Exception {
System.out.println("hello world");
//String timeStamp = new SimpleDateFormat("MM/dd/yyyy").format(Calendar.getInstance().getTime());
//System.out.println(timeStamp - );
File file = new File("C:/selenim/IEDriverServer.exe");
System.setProperty("webdriver.ie.driver", file.getAbsolutePath());
WebDriver idriver = new InternetExplorerDriver();
System.out.println("instantiation");
// Setting for Chrome
//WebDriver cdriver = new ChromeDriver();
//cdriver.get("http://cmdlhrstg05/curemd/datlogin.asp"); //** getting and setting chrome driver values
//cdriver.findElement(By.id("txtUserName")).sendKeys("haseeb");
//cdriver.findElement(By.id("Password")).sendKeys("s");
//cdriver.findElement(By.id("button")).click();
// Setting for IE
String parentWindow= idriver.getWindowHandle();
idriver.get("http://cmdlhrstg05/curemd/datlogin.asp"); //** getting and setting ie driver values
idriver.findElement(By.id("vchLogin_Name")).sendKeys(new String[] {"haseeb"});
idriver.findElement(By.id("vchPassword")).sendKeys(new String[] {"s"});
idriver.findElement(By.id("LoginImg")).click();
Thread.sleep(1000); // Wait for some 5 seconds
String actualTitle; // = idriver.getTitle();
for (String handle : idriver.getWindowHandles()) {
idriver.switchTo().window(handle);
}
actualTitle = idriver.getTitle();
String expectedTitle = " Personal: Dashboard";
Thread.sleep(500);
System.out.println("In the dashboard now");
了Thread.sleep(1000);
// To switch the frame to click the Patient CTA in universal links
idriver.switchTo().frame("fraCureMD_Menu");
System.out.println("In the main menu now");'
答案 0 :(得分:1)
替换
idriver.switchTo().frame("fraCureMD_Menu");
与
try {
idriver.switchTo().frame("fraCureMD_Menu");
} catch(Exception e) {
e.printStackTrace();
}
看看它在控制台上的打印效果。
答案 1 :(得分:1)
1)暂时禁用该线程(在Thread.sleep()语句中试验值。)
2)使用方法: 尝试 { 尝试 { idriver.switchTo()帧( “fraCureMD_Menu”); } catch(例外e){e.printStackTrace();}
} catch(例外e){System.out.println(e)}