我正面临“调用quit()后FirefoxDriver无法使用”的问题。请帮助。
public class Frame
{
private static WebDriver driver;
public static WebDriver openUrl(String URL)
{
driver = new FirefoxDriver();
driver.get(URL);
return driver;
}
public static WebDriver returnWebDriverInstance()
{
System.out.println("I am called");
return driver;
}
}
public class javaCheck2
{
private static WebDriver driver = Frame.returnWebDriverInstance();
static
{
// driver = Frame.returnWebDriverInstance();
System.out.println(driver + " in static");
}
public static void pageMaxim()
{
System.out.println(driver + " in page maxim");
driver.manage().window().maximize();
}
public static void pagesource()
{
System.out.println(driver + " in page source");
driver.getPageSource();
}
}
@Test
public class TestCase1
{
public void TC01()
{
WebDriver driver = Frame.openUrl("https://www.google.com");
javaCheck2.pagesource();
driver.quit();
// driver.close();
}
}
@Test
public class TestCase2
{
public void TC02()
{
WebDriver driver = Frame.openUrl("https://www.gmail.com");
javaCheck2.pageMaxim();
driver.quit();
// driver.close();
}
}
I am called
FirefoxDriver: firefox on MAC (6df8103b-673f-954f-b20d-72fa4b9181b8) in static
FirefoxDriver: firefox on MAC (6df8103b-673f-954f-b20d-72fa4b9181b8) in page source
FirefoxDriver: firefox on MAC (null) in page maxim
===============================================
Suite
Total tests run: 2, Failures: 1, Skips: 0
===============================================
请帮忙
问题在于,JavaCheck2
的静态Driver
实例只设置一次(在静态init块中),并且永远不会重置,因此一旦调用quit()
,基础会话(尽管不是null)就会无效。它永远不会重置,这就是为什么当您再次尝试使用驱动程序实例时会出现失败。
让它工作的最简单的修复(不需要大的重构)是:
public class javaCheck2 {
public static void pageMaxim() {
Frame.returnWebDriverInstance().manage().window().maximize();
}
public static void pagesource() {
Frame.returnWebDriverInstance().getPageSource();
}
}
我正在尝试使用Cucumber/Java编写一些selenium自动化UI测试。如果我的功能文件中只有一个测试,则一切正常。但是如果我添加第二个测试,我会在<code>driver.get()上得到这个错误。</code>: 基本上,我在一个包中初始化 InitializeWebdriver 类上的 webdriver 变量,然后在其他(步骤定义)类中引用它。我确实将下面的步骤定义列为 Initi
我有一个骆驼路线如下。虽然我设置了处理(true),但我不明白为什么defaul在所有重试都耗尽后,defaul的处理程序会调用的。 日志: 20.04.03 11:46:53.907 INFO ad #6 - timer://testRoute route1 面包屑 Id=ID-xxxxxx-1585894556662-0-4 |世界您好 20.04.03 11:46:53.913错误广告#6-
我正在尝试编写一个函数,该函数将取一个整数,将其除以数字,将其相加,如果总和为 我并不是真的在寻找一个最佳的解决方案,我只是想知道为什么这不起作用。
当我试图运行dataloader时。py我得到了以下导入错误。我逐行尝试代码,发现在将tensorlayer导入为t1时出现了此错误。 ModuleNotFoundError:没有名为'numpy.core._multiarray_umath'的模块重要错误:numpy.core.multiarray导入失败 上述异常是以下异常的直接原因: Traceback(最近的调用最后):文件”
我已将laravel应用程序的时区更改为,并在app.php文件中更改了此时区 但是,当我使用签入生产时区时,我得到的时区是UTC 我如何设置碳原子的时区
问题内容: 我正在尝试模拟一个进行JNDI调用的私有方法。从单元测试中调用该方法时,它将引发异常^。我想模拟该方法用于测试目的。我使用了另一个问题answer中的示例代码,并且在测试通过时,似乎仍在调用底层方法。我在方法中插入,然后将其打印到控制台。 有趣的是,如果我将第一个注释掉,则测试通过。?:( 那么,我如何模拟出一个私有方法,使其不被调用? ^可以理解,由于我的工作空间不支持JNDI,因此