Java 窗口未找到错误,实现模态窗口的多线程概念
以前我在项目中遇到了模态窗口的问题。我通过实现多线程的概念解决了这个问题。i、 例如,在单击任何元素之前,我创建了一个新线程,这将调用一个模态窗口 在Java 窗口未找到错误,实现模态窗口的多线程概念,java,multithreading,selenium-webdriver,Java,Multithreading,Selenium Webdriver,以前我在项目中遇到了模态窗口的问题。我通过实现多线程的概念解决了这个问题。i、 例如,在单击任何元素之前,我创建了一个新线程,这将调用一个模态窗口 在run()中,我编写了设置代码,它将从模式窗口中选择一个值。模式窗口将在单击列表中的任何值后自动关闭 代码片段 public class MyProj implements Runnable { static WebDriver driver = new FirefoxDriver(); Thread t; MyProj() { //
run()
中,我编写了设置代码,它将从模式窗口中选择一个值。模式窗口将在单击列表中的任何值后自动关闭
代码片段
public class MyProj implements Runnable {
static WebDriver driver = new FirefoxDriver();
Thread t;
MyProj() {
// Code to create a Thread
}
public void run() {
// Code to select a option from the Modal window
}
public static void main(String[] args) throws AWTException, FindFailed, InterruptedException {
driver.get(...);
// Code .........
new MyProj(); //Calling Constructor to create a new thread
driver.findElement(...).click(); // click to open modal window
System.out.println(driver.getTitle()); // Getting error at this point
在成功执行方法run
之后,当我试图执行driver.getTitle()
时,为了知道控件现在在哪里,得到一个错误
“未找到窗口。浏览器窗口可能已关闭”
如何克服这个错误??请帮忙 使用以下代码启动线程。请尝试一下!我在我的系统中试过,它工作正常。如果你遇到任何问题,请告诉我
MyProj() {
t = new Thread(this);
t.start();
}
我对selenium一无所知,但我对GUI的总体了解是,它们根本不支持多线程;虽然它在IE中似乎有些作用。如果切换到非浏览器对话框(例如jquery对话框),则应该能够解决此问题。@Petesh:hai,在从模式窗口中选择任何一个选项后,窗口将自动关闭,我不确定如何将我的控件切换到非浏览器diaglog。@MikeNakis:Thnx供您输入。@SivashankarMani如果您使用的是window.showModalDialog,那么,正如我提到的。上述问题中有一些建议的解决办法。我也不知道如何切换到非浏览器对话框;这是一个一次性的评论,建议其他途径来解决这个问题。嗨,我也用同样的方法创建了一个线程,t=new Thread(这是“第二个线程”),如果有什么我可以摆脱这个问题吗?我尝试了你的代码,它似乎工作良好。你在运行方法中使用驱动程序对象吗?是的,我在运行方法中使用驱动程序。使用driver.findelement在模态窗口中定位元素。