使用selenium webdriver Grid运行脚本时,脚本没有按预期运行

时间:2013-02-12 07:22:41

标签: grid webdriver

我想一次在三个浏览器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个浏览器并执行脚本。但问题是在执行脚本时,它在脚本中执行一些操作(比如在文本字段中输入文本,单击按钮等)在一个浏览器中执行两次,而在其他浏览器中完全没有执行。请让我知道可能是什么原因。

1 个答案:

答案 0 :(得分:2)

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

例如:

私人WebDriver driver = null;