0

我想一次在三个浏览器 IE、Chrome 和 Firefox 上运行相同的脚本(即并行)。我在Testng.xml文件中使用以下代码

 <test name="RunTests-1">
    <parameter name="browser" value="firefox" />     
    <parameter name="port" value="http://localhost:4444/wd/hub" />
    <classes>
        <class name="Com.TestSuite.class1"/>
    </classes>
</test>  
<test name="RunTests-2">
    <parameter name="browser" value="chrome" />     
    <parameter name="port" value="http://localhost:4444/wd/hub" />
    <classes>
        <class name="Com.TestSuite.class1"/>
    </classes>
</test>
<test name="RunTests-3">
    <parameter name="browser" value="internet explorer" />     
    <parameter name="port" value="http://localhost:4444/wd/hub" />
    <classes>
        <class name="Com.TestSuite.class1"/>
    </classes>
</test> 

在使用 TestNG 运行它时,它正在打开 3 个浏览器并执行脚本。但问题是在执行脚本时,它在一个浏览器中执行了两次脚本中的一些操作(如在文本字段中输入文本、单击按钮等),而在其他浏览器中根本不执行。请让我知道这可能是什么原因。

4

1 回答 1

3

当您将变量声明为Static. 它将被视为服务器端变量。在您启动三个浏览器时。它将single driver instance用于所有三个浏览器会话。仅出于这个原因,该操作就在同一个浏览器中重复执行。要解决此问题,请Static keyword从 Web 驱动程序定义中删除。

例如:

私有 WebDriver 驱动程序 = null;

于 2013-02-12T12:34:06.157 回答