我想一次在三个浏览器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个浏览器并执行脚本。但问题是在执行脚本时,它在脚本中执行一些操作(比如在文本字段中输入文本,单击按钮等)在一个浏览器中执行两次,而在其他浏览器中完全没有执行。请让我知道可能是什么原因。
答案 0 :(得分:2)
将变量声明为Static
时。它将被视为服务器端变量。在您启动三个浏览器的情况下。它将对所有三个浏览器会话使用single driver instance
。仅此原因,该操作在同一浏览器中重复执行。要解决此问题,请从Web驱动程序定义中删除Static keyword
。
例如:
私人WebDriver driver = null;