Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 窗口未找到错误,实现模态窗口的多线程概念_Java_Multithreading_Selenium Webdriver - Fatal编程技术网

Java 窗口未找到错误,实现模态窗口的多线程概念

Java 窗口未找到错误,实现模态窗口的多线程概念,java,multithreading,selenium-webdriver,Java,Multithreading,Selenium Webdriver,以前我在项目中遇到了模态窗口的问题。我通过实现多线程的概念解决了这个问题。i、 例如,在单击任何元素之前,我创建了一个新线程,这将调用一个模态窗口 在run()中,我编写了设置代码,它将从模式窗口中选择一个值。模式窗口将在单击列表中的任何值后自动关闭 代码片段 public class MyProj implements Runnable { static WebDriver driver = new FirefoxDriver(); Thread t; MyProj() { //

以前我在项目中遇到了模态窗口的问题。我通过实现多线程的概念解决了这个问题。i、 例如,在单击任何元素之前,我创建了一个新线程,这将调用一个模态窗口

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在模态窗口中定位元素。