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

硒铬驱动程序开始隐藏和版本兼容性

巩镜
2023-03-14

我试图在Chrome浏览器上执行Selenium测试用例。当我在Chrome上运行测试用例时,Chrome浏览器打开(在后台),测试用例按预期运行。问题是,在运行测试用例时,Chrome浏览器不会显示为活动窗口,下面是我在控制台中获得的文本:

Starting ChromeDriver 2.22.397929 (fb72fb249a903a0b1041ea71eb4c8b3fa0d9be5a) on port 28568
Only local connections are allowed.

使用的版本:Chrome浏览器:51.0.2704.103,ChromeDriver:2.22,Selenium独立服务器:2.53.0,IDE:Mac上的IntelliJ

下面是我使用的chrome浏览器代码:

case "Chrome": {
                System.setProperty("webdriver.chrome.driver", "src/main/resources/chromedriver");
                driver = new ChromeDriver();
                driver.manage().window().maximize();
                break;
            }

下面是POM。xml详细信息:

<dependencies>
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-firefox-driver</artifactId>
        <version>2.53.0</version>
    </dependency>
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>2.53.0</version>
    </dependency>
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-chrome-driver</artifactId>
        <version>2.53.0</version>
    </dependency>
</dependencies>

同样的测试用例在Firefox(43.0)上运行良好。请让我知道我是否做错了什么,或者如果我必须更改我正在使用的版本。提前谢谢!!

共有1个答案

莫乐
2023-03-14

让我们把一些事情搞清楚:

>

  • 如果您想检查chromedriver和Chrome的兼容性,可以在最新chromedriver的注释中阅读
  • 您不需要在selenium服务器之间兼容,因为您不使用它,您使用的是本地chromedriver,它与Chrome版本而不是selenium jar更相关
  • 您发布的控制台输出很好,这是启动chromedriver的预期日志。

    正在启动ChromeDriver 2.22。。。

    对于您在注释中添加的内容(-Dwindow.hide=false)的另一个解决方案可能是在chromedriver的DesiredCapabilities或ChromeOptions中使用属性:

    ChromeOptions options = new ChromeOptions();
    options.addArguments("start-maximized");
    DesiredCapabilities capabilities = DesiredCapabilities.chrome();
    capabilities.setCapability(ChromeOptions.CAPABILITY, chromeOptions);
    WebDriver driver = new ChromeDriver(capabilities);
    

    你可以用这些选项做更多的事情。

  •  类似资料:
    • 字段初始值设定项不能引用非静态字段、方法或属性Form1。选项 如果这是可能的,我想启动chrome完全隐藏,我如何能做到这一点?

    • 我正在尝试使用 启动 的会话 我一直收到这个错误: (未知错误:DevToolsActivePort文件不存在)(从chrome位置/usr/lib/chrumbrowser/chrum浏览器启动的进程不再运行,因此ChromeDriver假设chrome已崩溃。)(驱动程序信息:ChromeDriver=71.0.3578.98,平台=Linux 4.15.0-45-generic x86_64

    • 我正在编写一个与我们的一个系统交互的硒脚本。在我们的系统中,有一个按钮,当按下时,它只能正确加载页面大约一半的时间(它只是在每隔一个场合加载无限长的时间),因此我不能依赖默认的硒等待页面加载。因此,我想按下按钮,并在打开新窗口之前立即关闭Web浏览器以继续执行脚本。不幸的是,我无法解决按钮本身的问题。 我目前的代码: 目前,System.out不太可能达到,因为一旦action.perform()

    • 我无法运行脚本,并显示消息:驱动程序信息:驱动程序。.

    • 我还是想不通。几天前我的硒工作得很好;现在它给我带来了一些错误。我首先使用Nuget,然后我尝试手动安装它。 如何重现问题: 错误: OpenQA. Selenium.WebDriverExcture:抛出一个带有空响应的异常,向远程WebDriver服务器发送HTTP请求以获取URLhttp://localhost:60695/session.异常的状态为ReceiveFailure,消息为:基

    • 问题内容: 我的应用程序对它的依赖程度很高或更高 但是我也在使用它与> 22.0的番石榴版本不兼容,如下所述: https://github.com/SeleniumHQ/selenium/issues/4381 我对Java很陌生,这里最好的做法是什么? 我已经研究过类加载器,但是看起来像是一个很深的兔子洞。 问题答案: 由于您对 使用的依赖度很高,因此 可能会遇到麻烦。但是 Selenium发