使用我的java selenium项目时,我有这个非常奇怪的问题。当我在工作时,我编写并运行我编写的代码没有任何问题,但是当我回到家,编写代码,并尝试在Eclipse中编译它时它给了我:
Exception in thread "main" org.openqa.selenium.NoSuchWindowException: Unable to find element on closed window (WARNING: The server did not provide any stacktrace information)
当我将代码从家里带到我的工作电脑时,它会编译并运行。所以我知道这不是问题所在。
问题:我怎样才能让这个程序在家里的电脑上运行?这就是我正在使用的驱动程序(IE)。它崩溃的部分是我在任何方法甚至在main中调用xPath时。我会非常感谢你的帮助。
public static WebDriver driver(){
System.setProperty("webdriver.ie.driver", "D:/Selenium/IEDriverServer.exe");
DesiredCapabilities dc = DesiredCapabilities.internetExplorer();
dc.setCapability("EnableNativeEvents", false); //Disable native events
dc.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true); // Issue with downloading the report
dc.setCapability("ignoreZoomSetting",true);
WebDriver thing = new InternetExplorerDriver(dc);
thing.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
thing.findElement(By.tagName("html")).sendKeys(Keys.chord(Keys.CONTROL, "0")); //Set zoom level to 100%
return thing;
}
答案 0 :(得分:0)
有关解决方案的一些基本信息:
public static void main(String[] args) {}
或使用TestNG,您需要将代码放在public void test1() {}
和@Test
注释之类的方法中。你的代码中都缺少这两个。public static WebDriver driver
没有使用,因为您已经WebDriver thing
public static void main(String[] args) {}
或public void test1() {}
不会返回任何内容,因此请忽略return thing;
dc.setCapability("ignoreZoomSetting",true);
向前移动,则您可能会忽略缩放设置100%
,您可能会遇到意外错误&异常。thing.findElement(By.tagName("html")).sendKeys(Keys.chord(Keys.CONTROL, "0"));
行永远不会被执行。以下是您的工作代码,并使用public static void main(String[] args) {}
为您提供一些简单的调整:
public static void main(String[] args) {
System.setProperty("webdriver.ie.driver", "C:/Utility/BrowserDrivers/IEDriverServer.exe");
DesiredCapabilities dc = DesiredCapabilities.internetExplorer();
dc.setCapability("EnableNativeEvents", false); //Disable native events
dc.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true); // Issue with downloading the report
dc.setCapability("ignoreZoomSetting",true);
WebDriver thing = new InternetExplorerDriver(dc);
thing.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
}
如果这回答你的问题,请告诉我。