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

Selenium Grid:Remote teWebDriver阻止执行

鲁鹤轩
2023-03-14

我对使用Selenium是新手,在Selenium Grid 2中使用RemoteWebDriver时遇到了一些问题。我想知道我的代码出了什么问题。谢谢

我分3步设置RemoteWebDriver:

>

  • 将Chrome驱动程序设置为系统属性,我检查了路径是否正确
  • 设置功能
  • 通过RemoteWebDriver打开驱动程序

        logger.info("1. Start");
    
        File file = new File("/path/of/chromedriver");
        System.setProperty("webdriver.chrome.driver", file.getAbsolutePath());
    
        logger.info("2. Get Path: " + file.getAbsolutePath());
    
        DesiredCapabilities caps = new DesiredCapabilities();
        caps.setBrowserName(DesiredCapabilities.chrome().getBrowserName());
    
        logger.info("3. Set capabilities: " + caps);
    
        URL url = new URL(URL);
        RemoteWebDriver driver = new RemoteWebDriver(url, caps);
    
        logger.info("4. Initialize driver: " + driver);
        logger.info("5. End");
    
        return driver;
    

    结果通过前两步,但在最后一步失败,因为日志没有显示。似乎在设置RemoteWebDriver时出现了问题。日志如下所示:

    2017年5月16日8:28:16。测验设置驱动程序信息:1。开始

    可能16, 2017 8:28:16下午com.test.设置驱动程序信息:2。获取路径: /path/of/chromedriver

    2017年5月16日8:28:16。测验设置驱动程序信息:3。设置功能:功能[{browserName=chrome}]

    可能16, 2017 8:28:16PMcom.test.Setup setupDriver SEVERE:java.lang.IllegalStateException:驱动程序可执行文件的路径必须由webdriver.chrome.driverhtml" target="_blank">系统属性设置;有关详细信息,请参阅https://github.com/SeleniumHQ/selenium/wiki/ChromeDriver.最新版本可从http://chromedriver.storage.googleapis.com/index.html

    谁能告诉我问题出在哪里,谢谢!

    selenium-server-standalone-3.4.0.jar

    硒-java-3.4.0

    ChromeDrive 2.29

    Java版本"1.8.0_111"

    TestNG

  • 共有1个答案

    仲霍英
    2023-03-14

    例外说明了一切。

    May16, 2017 8:28:16PMcom.test.Setup setupDriver SEVERE:java.lang.IllegalStateException:驱动程序可执行文件的路径必须由webdriver.chrome.driver系统属性设置;有关详细信息,请参阅https://github.com/SeleniumHQ/selenium/wiki/ChromeDriver.最新版本可从http://chromedriver.storage.googleapis.com/index.html下载

    请确保在运行节点的计算机上执行以下操作。

    • 将chromedriver二进制文件的位置作为PATH环境变量的一部分提供
    • 现在,为了确保正确设置了位置,打开一个新的命令提示符/终端并键入chromedriver

    您应该看到如下输出(我的输出来自MAC)

    12:16 $ chromedriver
    Starting ChromeDriver 2.29.461585 (0be2cd95f834e9ee7c46bcc7cf405b483f5ae83b) on port 9515
    Only local connections are allowed.
    

    一旦您看到类似的输出,您可以尝试再次运行测试,您应该会没事的。

     类似资料:
    • 我最近在论坛上问了一个问题,为什么ExecutorService在获得期货后阻止了我的程序:ExecutorService和Future阻止了主线程 问题是,经过大量的调试,有罪的线不是未来。get()但是

    • 在我的Espresso测试执行和AlertDialog会被提示并等待用户响应。Espresso测试只有在我按下“Accept”按钮但我想测试代替用户执行此事件时才会继续。 我注意到我的线程选项卡上有以下状态

    • 问题内容: 当try块中存在时,我对try- finally执行感到困惑。据我了解,finally块将始终执行,即在返回调用方法之前。在考虑以下简单代码时: 实际打印的结果为1。这是否意味着不执行finally块?有人可以帮我吗? 问题答案: 从块返回时,返回值存储在该方法的堆栈帧中。之后,将执行finally块。 更改finally块中的值不会更改堆栈中已存在的值。但是,如果您从finally块

    • 我在Spring Boot应用程序中有以下类: 当我通过GET请求调用它时,我得到一个200 OK的回复,其中包含BBC的HTML源代码。co.uk公司。因此,似乎正在遵循重定向。 根据HTTP规范第10.3.3节: 如果收到302状态码以响应GET或HEAD以外的请求,则除非用户能够确认,否则用户代理不得自动重定向该请求 此外,它还专门针对非GET响应,并不规定GET请求应该重定向。因此,尽管在

    • 问题内容: 我对Go如何处理非阻塞IO感到困惑。API在我看来基本上是同步的,并且在Go上观看演示时,听到诸如“和调用块”之类的注释并不罕见。 从文件或网络读取时,Go是否使用阻塞IO?还是当在Go Routine中使用某种魔术来重写代码? 来自C#背景,这感觉非常不直观,在C#中,当使用异步API时我们使用了关键字。这清楚地表明,API可以产生当前线程,并在以后的延续中继续。 因此,TLDR;当

    • 问题内容: 我有一棵divs树: 在div上单击时,将使其子级不可见-即单击“ a”将使“ b”和“ c”不可见。 问题是:单击“ b”将调用“ a”的单击,并使“ b”和“ c”不可见。如何使用jQuery禁用对“ a”的点击? 谢谢 问题答案: 您可以为孩子添加一个处理程序,以防止click事件蔓延: 这样一来,点击不会传播到。都不会单击以转到,因此也不会。