Java Selenium服务器并行测试错误:会话id无效
您好,有人能告诉我在Selenium服务器上运行并行测试时我做错了什么吗?Java Selenium服务器并行测试错误:会话id无效,java,selenium,selenium-webdriver,junit,parallel-processing,Java,Selenium,Selenium Webdriver,Junit,Parallel Processing,您好,有人能告诉我在Selenium服务器上运行并行测试时我做错了什么吗? 我在课堂上做了一些简单的平行测试: package tests; import categories.Category1; import com.google.code.tempusfugit.concurrency.ConcurrentTestRunner; import org.junit.Before; import org.junit.Test; import org.junit.experimental.ca
我在课堂上做了一些简单的平行测试:
package tests;
import categories.Category1;
import com.google.code.tempusfugit.concurrency.ConcurrentTestRunner;
import org.junit.Before;
import org.junit.Test;
import org.junit.experimental.categories.Category;
import org.junit.runner.RunWith;
@RunWith(ConcurrentTestRunner.class)
@Category(Category1.class)
public class ParalelTest extends Base
{
protected String siteUrl = "/waitforit.php";
@Before
public void setUp()
{
driver.get(baseUrl + siteUrl);
}
@Test
public void test1()
{
System.out.println("test1() thread name: " + Thread.currentThread().getName());
}
@Test
public void test2()
{
System.out.println("test2() thread name: " + Thread.currentThread().getName());
}
@Test
public void test3()
{
System.out.println("test3() thread name: " + Thread.currentThread().getName());
}
@Test
public void test4()
{
System.out.println("test4() thread name: " + Thread.currentThread().getName());
}
}
以下是出现错误的屏幕:
这有什么不对?没有服务器,它可以正常工作 此错误消息
org.openqa.selenium.NoSuchSessionException: no such session
…意味着chromedriver=80.0无法使用Chrome浏览器v80.0启动/生成新的浏览上下文
您的主要问题是所使用的二进制文件之间的版本不兼容,如下所示:
- 尽管您使用的是最新的Selenium客户端版本3.141.59、Chrome驱动程序版本80.0和Chrome版本v80.0
- 您的JDK版本是1.8.0_65,非常古老
解决方案 一般的解决办法是:
- 将JDK升级到最新级别
- 通过IDE清理项目工作区,并仅使用所需的依赖项重建项目
- 如果您的基本Web客户端版本太旧,请通过卸载它并安装最新的GA和Web客户端发布版本
- 重新启动系统
- 执行
@测试
更新 但是,无效会话ID错误是服务器无法识别唯一会话标识符时发生的错误。如果会话已被删除或会话ID无效,则会发生这种情况 可以通过以下任一方式删除WebDriver会话:
- :显式调用
方法时,会显式删除WebDriver会话quit()
- :当您关闭调用
方法的最后一个窗口或选项卡时,WebDriver会话将被隐式删除close()
参考文献 有关详细讨论,请参见: