我们可以在一个浏览器中运行多个selenium WebDriver脚本吗?

时间:2015-08-10 04:58:47

标签: java selenium webdriver

任何人都可以建议我如何在单个firefox浏览器中运行多个selenium脚本,并且webdriver应该只初始化一个,而在父类中也是如此,语言使用得很好java

谢谢..

4 个答案:

答案 0 :(得分:0)

将您的@before注释junit重命名为@beforeClass

示例代码

@BeforeClass
      public  void intialization(String machine) throws Exception {




             driver = new FirefoxDriver();
                baseUrl = "http://"+machine+":8080/";
               driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);  
                driver.get(baseUrl);
                utilities.Login(driver,"test","1234");
          }

如何在一个类中运行其他Junit类请查看下面的示例

 @Test 
    public void callotherJunitClasses()
    {
    JUnitCore.runClasses(TypeNameofyourClass.class);


    }

答案 1 :(得分:0)

这是一种方法:

您可以创建一个使用WebDriver启动Selenium测试用例的框架。仅在运行时初始化驱动程序(ChromeDriver或FirefoxDriver),然后按顺序启动测试。

例如,如果您使用的是资源包,那么您将拥有FooTest.java和BarTest.java(您的脚本)以及FooTest.properties和BarTest.properties,您可以从中读取属性值,例如输入文本值。

您可能有一个Launchpage.properties,其中包含要启动的URL,例如: localhost:8080\mypage WebDriver将在启动时由框架初始化,而Launchpage.properties可能会以串行方式启动。

这里隐含的是浏览器只打开一次,因此测试2的操作依赖于,并且必须接受测试1的操作。

答案 2 :(得分:0)

您可以使用多线程概念

  1. 初始化Webdriver
  2. 创建多个线程并执行它
  3. 这将开始在一个浏览器上并行执行代码

答案 3 :(得分:0)

感谢所有您的支持查询已由您自己解决。

程序包A - > ClassA的:

将publicdriver中的webdriver对象初始化为..

" public static WebDriver driver = new FirefoxDriver();"

套餐B - > ClassB:

通过分配needsx来调用B类中的WebDriver变量

导入PackageA.ClassA;

public static WebDriver needsX = ClassA.driver;

所以现在我可以全局访问webdriver变量,并可以在一个浏览器中顺序运行多个脚本。