Grid 使用selenium webdriver网格运行脚本时,脚本未按预期运行

Grid 使用selenium webdriver网格运行脚本时,脚本未按预期运行,grid,webdriver,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>

我想同时在三个浏览器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个浏览器并执行脚本。但问题是,在执行脚本时,它在一个浏览器中两次执行脚本中的某些操作(如在文本字段中输入文本、单击按钮等),而在其他浏览器中根本不执行。当您将变量声明为
静态时,请告知原因。

。它将被视为服务器端变量。在您的情况下,当您启动三个浏览器时。它将对所有三个浏览器会话使用
单个驱动程序实例
。仅出于这个原因,操作就在同一浏览器中重复执行。要解决此问题,请从web驱动程序定义中删除
静态关键字

例如:


私有WebDriver=null

将变量声明为
静态时。它将被视为服务器端变量。在您的情况下,当您启动三个浏览器时。它将对所有三个浏览器会话使用
单个驱动程序实例
。仅出于这个原因,操作就在同一浏览器中重复执行。要解决此问题,请从web驱动程序定义中删除
静态关键字

例如:


私有WebDriver=null

发布您用于调用浏览器的代码。请参考以下google文档链接了解我的代码:在代码中,is
driver
实例声明部分,检查您是否声明为
Static
。是的,我作为私有静态WebDriver。。。。我已经在上面的google docs链接中更新了您用来调用浏览器的代码。请参考下面的google docs链接了解我的代码:在代码中,是
driver
实例声明部分,并检查您是否声明为
静态
。是的,我已经作为私有静态WebDriver。。。。我已经在上面的谷歌文档链接中进行了更新,如果我的解决方案对你有帮助,那么就把它作为一个答案。@Manigandan非常感谢。希望我能早5个小时看到它。:)希望能给你100票。如果我的解决方案对你有帮助,那么就把它作为一个答案。@Manigandan非常感谢。希望我能早5个小时看到它。:)希望能给你100票。