zoukankan      html  css  js  c++  java
  • 解决linux 运行自动化脚本浏览器无法启动问题

    1.前提你的驱动和版本对应无问题时,依旧报未知错误无法启动chrome

    解决方法加上两行:

    options.addArguments("no-sandbox");
    options.addArguments("--disable-gpu");

    其中
    “–no-sandbox”参数是让Chrome在root权限下跑
    “–headless”参数是不用打开图形界面

    奉上我的TestNg源码:

    package com.chen.autocases;
    import org.openqa.selenium.chrome.ChromeDriver;
    import org.openqa.selenium.chrome.ChromeOptions;
    import org.testng.annotations.AfterClass;
    import org.testng.annotations.BeforeClass;
    import org.testng.Assert;
    import org.testng.annotations.Test;
    import org.openqa.selenium.WebDriver;
    import org.apache.log4j.Logger;
    
    import java.util.concurrent.TimeUnit;
    
    public class TestDemo {
        private static Logger log = Logger.getLogger(TestDemo.class);
        public WebDriver driver;
        /*
        @param
            import java.util.HashMap;
            import java.util.Map;
            options.addArguments("--disable-popup-blocking"); // 禁用阻止弹出窗口
            options.addArguments("no-sandbox"); // 启动无沙盒模式运行
            options.addArguments("disable-extensions"); // 禁用扩展
            options.addArguments("no-default-browser-check"); // 默认浏览器检查
            Map<String, Object> prefs = new HashMap();
            prefs.put("credentials_enable_service", false);
            prefs.put("profile.password_manager_enabled", false);
            options.setExperimentalOption("prefs", prefs);// 禁用保存密码提示框
    
            */
    
        @BeforeClass
        public void beforeClass() {
            System.setProperty("webdriver.chrome.driver", "/usr/local/chrome/chromedriver");
            ChromeOptions options = new ChromeOptions();
            options.setHeadless(Boolean.TRUE);
    		options.addArguments("no-sandbox");
            options.addArguments("--disable-gpu");
            options.addArguments("--start-maximized"); // 启动时自动最大化窗口
            driver = new ChromeDriver(options);
            driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
            driver.get("http://www.baidu.com");
            log.info("用例开始执行------");
        }
        @AfterClass
        public void afterClass(){
                log.info("用例结束后运行----");
                driver.quit();
              }
    
        @Test
        public void testcase1(){
            log.info("testcase1");
            Assert.assertTrue(true);
    
        }
        @Test
        public void testcase2(){
            Assert.assertTrue(true);
            log.debug("testcase2");
        }
    }
    

      

  • 相关阅读:
    MVC4 @helper辅助方法
    Razor的主版页面框架
    Razor与HTML混合输出陷阱与技巧
    MVC4 razor与aspx的区别以及用法
    loj6100 「2017 山东二轮集训 Day1」第一题
    loj6087 毒瘤题
    「6月雅礼集训 2017 Day2」C
    「6月雅礼集训 2017 Day2」B
    「6月雅礼集训 2017 Day2」A
    「6月雅礼集训 2017 Day1」看无可看
  • 原文地址:https://www.cnblogs.com/SunshineKimi/p/10803990.html
Copyright © 2011-2022 走看看