java - 在 Linux 服务器上运行 selenium 套件

标签 java selenium-webdriver selenium-chromedriver testng remotewebdriver

我正在尝试在安装了稳定版 chrome 76 的 Linux 64 位服务器上运行 selenium 套件 面对以下错误,我的代码在我的本地 mac 机器上运行良好

错误

Chrome 正在启动 Chome路径:/scratchchrome/chromedriver_linux76_68 2020 年 2 月 27 日上午 5:19:51 org.openqa.selenium.remote.DesiredCapability chrome 信息:使用new ChromeOptions()优先于DesiredCapabilities.chrome() 在端口 8638 上启动 ChromeDriver 76.0.3809.68 (420c9498db8ce8fcd190a954d51297672c1515d5-refs/branch-heads/3809@{#864}) 仅允许本地连接。 请保护ChromeDriver和相关测试框架使用的端口,以防止访问

恶意代码。 未知错误:Chrome 无法启动:异常退出 (未知错误:DevToolsActivePort 文件不存在) (从 chrome 位置/usr/bin/google-chrome 启动的进程不再运行,因此 ChromeDriver 假设 Chrome 已崩溃。) 构建信息:版本:'3.141.59',修订版:'e82be7d358',时间:'2018-11-14T08:17:03' 系统信息:主机:'arusprint05',ip:'100.104.104.153',os.name:'Linux',os.arch:'amd64',os.version:'4.14.35-1902.3.1.el7uek.x86_64',java.version:'1.8.0_222' 驱动程序信息:driver.version:ChromeDriver 远程堆栈跟踪:#0 0x5612da7d3749

Java代码是

        DesiredCapabilities capabilities = DesiredCapabilities.chrome();

            String chromePath=System.getProperty("user.dir")+"/";

            String chromedriverPath = chromePath+PropertyfileConfig.getStringValueFromProperty("chromedriverpath");
            System.out.println("ChomePath :"+chromedriverPath);

            System.setProperty("webdriver.chrome.driver", chromedriverPath);

            ChromeOptions options = new ChromeOptions();
            options.addArguments("--no-sandbox");
            options.addArguments("--disable-dev-shm-usage");
            options.setExperimentalOption("useAutomationExtension", false);
            options.addArguments("--window-size=1920,1080");            
            options.addArguments("--start-maximized");
            options.addArguments("--headless");
            options.setExperimentalOption("useAutomationExtension", false);
        options.addArguments("--disable-gpu");

            capabilities.setCapability("chrome.binary", "<Path to binary>");
            capabilities.setCapability("acceptSslCerts", true);
            capabilities.setCapability("acceptInsecureCerts", true);
            capabilities.setCapability(ChromeOptions.CAPABILITY, options);

            driver = new ChromeDriver(capabilities);
            driver.manage().window().maximize();
            driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);

最佳答案

所需功能已关闭。尝试仅使用 ChromeOptions。交叉检查 chrombrowser 版本各自的 .exe 文件和 setProperty 中传递的路径。

这会对你有帮助How to implement chromedriver in selenium in Linux platform

关于java - 在 Linux 服务器上运行 selenium 套件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60426764/

相关文章:

selenium - 无法处理 headless Chrome 中的 Microsoft 登录身份验证弹出窗口[使用 java 的 Selenium]

linux - 如何在 Alpine Linux 上运行 Angular6 E2E 测试

Java 列表对象而不是数组

java - 如何判断JAVA创建的窗口是否关闭

java - Centos中Apache Tomcat如何设置JAVA_HOME?

javascript - 我如何根据我使用 selenium python 的 HTML 数据获取 HTML 索引?

python-3.x - python Selenium : How to hide geckodriver?

eclipse - 如何将 TestNG javadoc 连接到 Eclipse?

c# - ChromeDriver 不记录日志

java - 如何使用 Builder 导入第 3 方 jar?