加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

解决linux 运行自动化脚本浏览器无法启动问题

发布时间:2020-12-14 01:23:31 所属栏目:Linux 来源:网络整理
导读:1.前提你的驱动和版本对应无问题时,依旧报未知错误无法启动chrome 解决方法加上两行: options.addArguments("no-sandbox"); options.addArguments("--disable-gpu"); 其中 “–no-sandbox”参数是让Chrome在root权限下跑 “–headless”参数是不用打开图形

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");
    }
}

?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读