当前位置: 首页 > 知识库问答 >
问题:

我的硒测试不起作用,问题出在哪里?

元玮
2023-03-14

我想使用硒网格,这是我的步骤:

  1. 启动Selenium网格hub:java-jar selenium-server-standalone-3.141.59.jar-ro hub
  2. 启动Selenium节点:java-jar selenium-server-standalone-3.141.59.jar-ro node-hub http://localhost:4444/grid/register-browser browsername=chrome
  3. Java代码:
    public class TestGrid {
        static WebDriver driver;
        static String nodeUrl;

        @Before
        public void setup() throws MalformedURLException {
            nodeUrl = "http://localhost:4444/wd/hub";
            DesiredCapabilities capabilities = DesiredCapabilities.chrome();
            capabilities.setBrowserName("chrome");
            capabilities.setPlatform(Platform.MAC);
            driver = new RemoteWebDriver(new URL(nodeUrl), capabilities);
        }

        @Test
        public void simpleTest() {
            driver.get("https://www.edureka.co");
            Assert.assertEquals("Instructor Led Online Courses with 24x7 On-Demand Support | Edureka",
                    driver.getTitle());
        }

        @After
        public void afterTest() {
            driver.quit();
        }
    }

但是当我在IDE中运行这个时,我发现测试部分从未到达,似乎处于前一步,只是停留在最后一步:

driver = new RemoteWebDriver(new URL(nodeUrl), capabilities);

我只从控制台看到:

Oct 05, 2019 10:08:15 AM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Attempting bi-dialect session, assuming Postel's Law holds true on the remote end

在selenim集线器控制台中:

10:09:16.438 INFO [RequestHandler.process] - Got a request to create a new session: Capabilities {browserName: chrome, platform: MAC, version: }
10:09:16.443 INFO [TestSlot.getNewSession] - Trying to create a new session on test slot {server:CONFIG_UUID=952f43b8-f264-48b3-aa6f-eff6ff59b16e, seleniumProtocol=WebDriver, browserName=chrome, platformName=MAC, platform=MAC}

然后永远不要到达测试部分

ChromeDriver 77.0.3865.40 (f484704e052e0b556f8030b65b953dce96503217-refs/branch-heads/3865@{#442})

我遵循了下面的说明,但是当启动java junit时,我从selenium server hub控制台得到了错误:

Got a request to create a new session: Capabilities {browserName: chrome, platform: MAC}
10:30:12.334 INFO [TestSlot.getNewSession] - Trying to create a new session on test slot {server:CONFIG_UUID=4b8d38ff-8be6-4894-8c17-8fe334c7c3bc, seleniumProtocol=WebDriver, browserName=chrome, maxInstances=5, platformName=MAC, platform=MAC}
10:30:28.926 INFO [RequestHandler.process] - Error forwarding the new session Error forwarding the request Failed to connect to /10.1.3.246:14786
org.openqa.grid.internal.exception.NewSessionException: Error forwarding the request Failed to connect to /10.1.3.246:14786
    at org.openqa.grid.web.servlet.handler.RequestHandler.forwardNewSessionRequestAndUpdateRegistry(RequestHandler.java:94)
    at org.openqa.grid.web.servlet.handler.RequestHandler.process(RequestHandler.java:114)
    at org.openqa.grid.web.servlet.Driver

在将chromedriver复制到与selenium jar文件夹相同的文件夹后,我看到了这个错误。

在Java控制台中,我看到了以下内容:

Oct 08, 2019 10:30:12 AM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Attempting bi-dialect session, assuming Postel's Law holds true on the remote end
Oct 08, 2019 10:31:28 AM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Falling back to original OSS JSON Wire Protocol.
Oct 08, 2019 10:32:44 AM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Falling back to straight W3C remote end connection

org.openqa.selenium.SessionNotCreatedException: Unable to create new remote session. desired capabilities = Capabilities [{browserName=chrome, platform=MAC}], required capabilities = Capabilities [{}]
Build info: version: '3.0.1', revision: '1969d75', time: '2016-10-18 09:49:13 -0700'
System info: host: 'my.local', ip: '10.1.2.137', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.14.6', java.version: '1.8.0_171'
Driver info: driver.version: RemoteWebDriver

    at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:91)
    at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:141)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:601)
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:241)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:128)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:155)
    at com.datavisor.e2e.TestGrid.setup(TestGrid.java:41)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
    at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
    at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
    at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
    at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
    at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
    at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
    at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
    at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
    at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)

也许是版本问题?

共有1个答案

萧明贤
2023-03-14

您在使用JUnit吗?如果是,请检查Junit error trace中的以下错误。

org.openqa.selenium.SessionNotCreatedException:无法创建新服务:ChromeDriverService构建信息:版本:'3.141.59',修订:'E82BE7D358',时间:'2018-11-14T08:25:53'

如果这是您得到的错误,

java -jar -Dwebdriver.chrome.driver=chromedriver selenium-server-standalone-3.141.59.jar -role node -hub http://localhost:4444/grid/register -browser browserName=chrome
 类似资料:
  • 我的Java类没有运行。我有一个带有Apache POI的@DataProvider来从Excel文件中读取数据并在网页中设置该值。但是脚本以没有测试发现错误结束。这是我的代码: 这是我在eclipse控制台中的输出。 [TestNG]未找到测试。未运行任何内容用法:[选项]要运行的XML套件文件选项:-alwaysrunlisteners即使跳过的方法也应该运行方法调用监听器默认值:true-c

  • 我的JDK是版本,Surefire是,Maven是。我正在使用jUnit和Spring注释。 当我尝试使用命令运行我的测试时,我没有出错,我获得了成功构建,也没有运行案例。 运行测试用例。TestLogin使用:org配置TestNG。阿帕奇。专家当然可以。测试NG。形态。TestNG652Configurator@7bb11784测试运行:0,失败:0,错误:0,跳过:0,所用时间:0.808秒

  • 我对硒有问题!我试了3.6和2.7,但没有区别!我用的是win7(64位) 文件“C:\python27\lib\site-packages\selenium\webdriver\common\service.py”,第81行,在start os.path.basename(self.path),self.start_error_message中 WebDriverException:消息:“Ge

  • 我在无头模式下运行测试时遇到问题。我在两个不同的地方编写了测试用例(web商店和门户)。同样,我使用Headless,当Headless在web shop中为true时,我的测试工作,但当Headless在门户测试用例中为true时,它们不工作。 组织。openqa。硒。ElementClickInterceptedException:元素单击intercepted:元素在点(480483)处不可

  • 我卡住了!如果跳过测试并部署到tomcat自动布线,则配置属性文件将正常工作。在我的测试中,它失败了!我不确定我错过了什么。 GitService-自带属性在Tomcat上工作! GitServiceTest由于NPE,该类在初始化时失败.属性为空。 粘贴后我确实意识到@EnableConfigurationProperties在application.java和GitService.java类上

  • 问题内容: 这段代码什么也没给我返回,您能帮我为什么不收回价值吗? 问题答案: 你是那个意思吗 还是真的是t1.wid = t2.wid?在这种情况下,您需要左联接。 编辑 好的,所以您已修复它。除非t2中有行的wid与t1中具有相同wid的行匹配的wid,否则不会显示任何结果。 如果需要结果,请将其更改为: 下一步编辑 如果目标是使用t2中尚未存在的t1中的值更新t2,则可能是这样的: 缺少的步

  • 当我尝试在Chrome中运行测试时,出现以下错误: 初始化方法AutomationUsingSelenium。蓝绿色。MyTestInitialize引发异常。OpenQA。硒。DriversServiceNotFoundException:OpenQA。硒。DriversServiceNotFoundException 原因是什么?

  • 我试着用Twilio发一条短信,如下所示: 我得到以下错误: