GVKun编程网logo

如何配置ChromeDriver通过Selenium以无头模式启动Chrome浏览器?(chrome 无头模式)

11

在这篇文章中,我们将带领您了解如何配置ChromeDriver通过Selenium以无头模式启动Chrome浏览器?的全貌,包括chrome无头模式的相关情况。同时,我们还将为您介绍有关3-Pytho

在这篇文章中,我们将带领您了解如何配置ChromeDriver通过Selenium以无头模式启动Chrome浏览器?的全貌,包括chrome 无头模式的相关情况。同时,我们还将为您介绍有关3-Python爬虫-动态HTML/Selenium+PhantomJS/chrome无头浏览器-chromedriver、Chrome浏览器通过Pythonselenium自动更新时如何使用特定版本的ChromeDriver、org.openqa.selenium.chrome.ChromeDriver的实例源码、python+selenium启动chrome浏览器失败的知识,以帮助您更好地理解这个主题。

本文目录一览:

如何配置ChromeDriver通过Selenium以无头模式启动Chrome浏览器?(chrome 无头模式)

如何配置ChromeDriver通过Selenium以无头模式启动Chrome浏览器?(chrome 无头模式)

我正在研究用于网络抓取的python脚本,并且没有使用Chromedriver作为软件包之一。我希望此操作无需任何弹出窗口即可在后台运行。我在chromedriver上使用了“无头”选项,它似乎在不显示浏览器窗口的情况下完成了工作,但是,我仍然看到.exe文件正在运行。查看我在说什么的屏幕截图。屏幕截图

这是我用来启动ChromeDriver的代码:

options = webdriver.ChromeOptions()options.add_experimental_option("excludeSwitches",["ignore-certificate-errors"])options.add_argument(''headless'')options.add_argument(''window-size=0x0'')chrome_driver_path = "C:\Python27\Scripts\chromedriver.exe"

我尝试做的事情是将选项中的窗口大小更改为0x0,但我不确定这样做是什么,因为.exe文件仍然弹出。

关于如何执行此操作的任何想法?

我正在使用Python 2.7 FYI

答案1

小编典典

因此,在将我的代码更正为:

options = webdriver.ChromeOptions()options.add_experimental_option("excludeSwitches",["ignore-certificate-errors"])options.add_argument(''--disable-gpu'')options.add_argument(''--headless'')chrome_driver_path = "C:\Python27\Scripts\chromedriver.exe"

运行脚本时,仍然会出现.exe文件。尽管这确实摆脱了一些额外的输出,告诉我“无法启动GPU进程”。

最终的工作是使用.bat文件运行我的Python脚本

所以基本上

  1. 如果文件夹保存python脚本
  2. 打开文本编辑器,然后转储以下代码(当然,请编辑您的脚本)

c:\ python27 \ python.exe c:\ SampleFolder \ ThisIsMyScript.py%*

  1. 保存.txt文件并将扩展名更改为.bat

  2. 双击运行文件

因此,这只是在命令提示符中打开了脚本,ChromeDriver似乎可以在此窗口中运行,而不会弹出到屏幕的前面,从而解决了问题。

3-Python爬虫-动态HTML/Selenium+PhantomJS/chrome无头浏览器-chromedriver

3-Python爬虫-动态HTML/Selenium+PhantomJS/chrome无头浏览器-chromedriver

动态HTML

爬虫跟反爬虫

动态HTML介绍

  • JavaScrapt
  • jQuery
  • Ajax
  • DHTML
  • Python采集动态数据
    • 从Javascript代码入手采集
    • Python第三方库运行JavaScript,直接采集你在浏览器看到的页面

Selenium + PhantomJS

  • Selenium: web自动化测试工具
    • 自动加载页面
    • 获取数据
    • 截屏
    • 安装: pip install selenium==2.48.0
    • 官网: http://selenium-python.readthedocs.io/index.html
  • PhantomJS(幽灵)
    • 基于Webkit 的无界面的浏览器
    • 官网: http://phantomjs.org/download.html
  • Selenium 库有有一个WebDriver的API
  • WebDriver可以跟页面上的元素进行各种交互,用它可以来进行爬取
  • 案例 v36
  • chrome + chromedriver
    • 下载安装chrome: 下载+安装
    • 下载安装chromedriver:
  • Selenium操作主要分两大类:
    • 得到UI元素
      • find_element_by_id
      • find_elements_by_name
      • find_elements_by_xpath
      • find_elements_by_link_text
      • find_elements_by_partial_link_text
      • find_elements_by_tag_name
      • find_elements_by_class_name
      • find_elements_by_css_selector
    • 基于UI元素操作的模拟
      • 单击
      • 右键
      • 拖拽
      • 输入
      • 可以通过导入ActionsChains类来做到
    • 案例37

案例v36

''''''
通过webdriver操作进行查找1
''''''



from selenium import webdriver
import time




# 通过Keys模拟键盘
from selenium.webdriver.common.keys import  Keys

# 操作哪个浏览器就对哪个浏览器建一个实例
# 自动按照环境变量查找相应的浏览器
driver = webdriver.PhantomJS()

# 如果浏览器没有在相应环境变量中,需要指定浏览器位置


driver.get("http://www.baidu.com")


# 通过函数查找title标签
print("Title: {0}".format(driver.title))

案例v37

from selenium import webdriver
import time
from selenium.webdriver.common.keys import  Keys

# 可能需要手动添加路径
driver = webdriver.Chrome()

url = "http://www.baidu.com"


driver.get(url)


text = driver.find_element_by_id(''wrapper'').text
print(text)
print(driver.title)
# 得到页面的快照
driver.save_screenshot(''index.png'')

# id="kw" 的是百度的输入框,我们得到输入框的ui元素后直接输入“大熊猫"
driver.find_element_by_id(''kw'').send_keys(u"大熊猫")

# id="su"是百度搜索的按钮,click模拟点击
driver.find_element_by_id(''su'').click()

time.sleep(5)
driver.save_screenshot("daxiongmao.png")


#获取当前页面的cookie
print(driver.get_cookies())

# 模拟输入两个按键 ctrl+ a
driver.find_element_by_id(''kw'').send_keys(Keys.CONTROL, ''a'')
#ctr+x 是剪切快捷键
driver.find_element_by_id(''kw'').send_keys(Keys.CONTROL, ''x'')

driver.find_element_by_id(''kw'').send_keys(u''航空母舰'')
driver.save_screenshot(''hangmu.png'')

driver.find_element_by_id(''su'').send_keys(Keys.RETURN)

time.sleep(5)
driver.save_screenshot(''hangmu2.png'')


# 清空输入框 , clear
driver.find_element_by_id(''kw'').clear()
driver.save_screenshot(''clear.png'')

# 关闭浏览器
driver.quit()

selenium自动化测试 工具:

-用selenium登录的时候,先要get到页面; -get到页面之后就可以准备输入了, -selenium可以模拟输入; -selenium调没有界面的chrome或者PhantomJS -保存快照,手动输入,对静态验证码的一大杀手。

Chrome浏览器通过Pythonselenium自动更新时如何使用特定版本的ChromeDriver

Chrome浏览器通过Pythonselenium自动更新时如何使用特定版本的ChromeDriver

如何解决Chrome浏览器通过Pythonselenium自动更新时如何使用特定版本的ChromeDriver?

,除了更新 ChromeDriver 二进制版本外,没有其他选择,而 Chrome浏览器 会不断自动更新。

原因

在添加,修改和删除现有功能后,会释放每个 Chrome浏览器 。为了符合当前的 浏览器功能 集, Chrome团队 会不时发布兼容的ChromeDriver 二进制文件。这些 ChromeDriver 二进制文件能够与 Chrome浏览器 进行交互。某些版本的ChromeDriver 二进制文件支持特定范围的 Chrome浏览器 版本(某些是最新版本),如下所示:

  • ChromeDriver v (2020-05-28)

    Supports Chrome version 84
    
  • ChromeDriver v (2020-05-05)

    Supports Chrome version 83
    
  • ChromeDriver v 故意 跳过。

  • ChromeDriver v (2020-05-05)

    Supports Chrome version 81
    
  • ChromeDriver v (2020-02-13)

    Supports Chrome version 80
    
  • ChromeDriver v (2019-11-18)

    Supports Chrome version 79
    
  • ChromeDriver v (2019-10-21)

    Supports Chrome version 78
    
  • ChromeDriver v (2019-08-20)

    Supports Chrome version 77
    
  • ChromeDriver v (2019-08-20)

    Supports Chrome version 76
    
  • ChromeDriver v (2019-04-29)

    Supports Chrome version 75
    
  • ChromeDriver v (2019-03-14)

    Supports Chrome version 74
    
  • ChromeDriver v (2019-03-06)

    Supports Chrome version 73
    
  • ChromeDriver v (2019-02-01)

    Supports Chrome v71-73
    
  • ChromeDriver v (2018-12-10)

    Supports Chrome v70-72
    
  • ChromeDriver v (2018-11-19)

    Supports Chrome v69-71
    
  • ChromeDriver v (2018-10-16)

    Supports Chrome v69-71
    
  • ChromeDriver v (2018-09-13)

    Supports Chrome v68-70
    
  • ChromeDriver v (2018-07-27)

    Supports Chrome v67-69
    
  • ChromeDriver v (2018-06-07 )

    Supports Chrome v66-68
    
  • ChromeDriver v (2018-05-30)

    Supports Chrome v66-68
    
  • ChromeDriver v (2018-04-17 )

    Supports Chrome v65-67
    
  • ChromeDriver v (2018-03-16 )

    Supports Chrome v64-66
    
  • ChromeDriver v (2018-03-02 )

    Supports Chrome v63-65
    
  • ChromeDriver v (2018-01-10 )

    Supports Chrome v62-64
    
  • ChromeDriver v (2017-12-10 )

    Supports Chrome v61-63
    
  • ChromeDriver v (2017-10-03)

    Supports Chrome v60-62
    
  • ChromeDriver v (2017-08-30)

    Supports Chrome v59-61
    
  • ChromeDriver v (2017-07-21)

    Supports Chrome v58-60
    
  • ChromeDriver v (2017-06-07)

    Supports Chrome v58-60
    
  • ChromeDriver v (2017-04-04)

    Supports Chrome v56-58
    

结论

要使脚本/程序与更新的 Chrome浏览器 保持交互,您必须根据 兼容性将ChromeDriver 二进制版本与 Chrome浏览器 保持同步。

解决方法

我是Selenium的新手,现在可以将selenium与Chromedriver一起使用以进行基本的自动测试,代码可以正常工作,但问题是Chrome浏览器始终在后端自动更新,并且代码始终在Chrome更新后无法运行。我知道我需要下载新的chromedriver来解决此问题,但是我想知道是否有任何方法可以在不禁用chromebrowser更新的情况下解决此问题?tks。

我正在使用Windows 10 / Chrome版本67 / Python 3.6.4 / Selenium 3.12.0

org.openqa.selenium.chrome.ChromeDriver的实例源码

org.openqa.selenium.chrome.ChromeDriver的实例源码

项目:java-maven-selenium    文件:DriverFactory.java   
public static WebDriver getDriver() {

        String browser = System.getenv("broWSER");
        if (browser == null) {
            ChromeDriverManager.getInstance().setup();
            return new ChromeDriver();
        }
        switch (browser)
        {
            case "IE":
                InternetExplorerDriverManager.getInstance().setup();
                return new InternetExplorerDriver();
            case "FIREFOX":
                FirefoxDriverManager.getInstance().setup();
                return new FirefoxDriver();
            default:
                ChromeDriverManager.getInstance().setup();
                return new ChromeDriver();

        }
    }
项目:selenium-camp-17    文件:Java7WebDriverFactory.java   
public static WebDriver getDriverUsingIf(DesiredCapabilities desiredCapabilities) {
    if (desiredCapabilities == null) {
        throw new IllegalStateException("DesiredCapabilities are missing!");
    }

    final String browser = desiredCapabilities.getbrowserName();

    if (CHROME.equalsIgnoreCase(browser)) {
        return new ChromeDriver(desiredCapabilities);
    } else if (FIREFOX.equalsIgnoreCase(browser)) {
        return new FirefoxDriver(desiredCapabilities);
    } else if (browser.isEmpty()) {
        throw new IllegalStateException("'browser' capability is missing!");
    }

    throw new IllegalArgumentException(desiredCapabilities.getbrowserName() + " browser is not supported!");
}
项目:NaukriSite    文件:Setup.java   
@BeforeMethod
public void siteUp () {

    final String exe = "chromedriver.exe";
    final String path = getClass ().getClassLoader ()
        .getResource (exe)
        .getPath ();
    final String webSite = "http://www.naukri.com";
    final String binaryPath = "C:\\Users\\DELL\\AppData\\Local\\Google\\Chrome\\Application\\chrome.exe";

    System.setProperty("webdriver.chrome.driver",path);
    ChromeOptions chromeOpt= new ChromeOptions();
    chromeOpt.setBinary(binaryPath);

    driver = new ChromeDriver (chromeOpt);
    driver.get(webSite);
    driver.manage ().timeouts ().implicitlyWait (10,TimeUnit.SECONDS);
    driver.manage().window().maximize();
    windowHandling ();
}
项目:akita-testing-template    文件:AkitachromeDriverProvider.java   
@Override
public WebDriver createDriver(DesiredCapabilities capabilities) {
    Map<String,Object> preferences = new Hashtable<>();
    preferences.put("profile.default_content_settings.popups",0);
    preferences.put("download.prompt_for_download","false");
    String downloadsPath = System.getProperty("user.home") + "/Downloads";
    preferences.put("download.default_directory",loadSystemPropertyOrDefault("fileDownloadpath",downloadsPath));
    preferences.put("plugins.plugins_disabled",new String[]{
            "Adobe Flash Player","Chrome PDF Viewer"});
    ChromeOptions options = new ChromeOptions();
    options.setExperimentalOption("prefs",preferences);

    capabilities = DesiredCapabilities.chrome();
    capabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS,true);
    capabilities.setCapability(ChromeOptions.CAPABILITY,options);
    return new ChromeDriver(capabilities);
}
项目:f4f-tts    文件:ScrapperTtsUpdater.java   
private ChromeDriver setUp(Properties properties) {
    System.setProperty("webdriver.chrome.driver",properties.getProperty("webdriver.chrome.driver"));
    String binaryPath = properties.getProperty(CHROME_DRIVER_BINARY_PATH);

    if (binaryPath == null) {
        throw new RuntimeException("Missing property : " + CHROME_DRIVER_BINARY_PATH);
    }

    Map<String,Object> prefs = new HashMap<>();
    prefs.put("profile.default_content_setting_values.notifications",2);
    ChromeOptions options = new ChromeOptions();
    options.setExperimentalOption("prefs",prefs);
    options.setBinary(binaryPath);
    options.addArguments("--headless");
    options.addArguments("--user-agent=" + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/60.0.3112.113 Safari/537.36");
    return new ChromeDriver(options);
}
项目:PicCrawler    文件:Utils.java   
/**
 * 对当前对url进行截屏,一方面可以做调试使用看能否进入到该页面,另一方面截屏的图片未来可以做ocr使用
 * @param url
 */
public static void getScreenshot(String url) {

    //启动chrome实例
    WebDriver driver = new ChromeDriver();
    driver.get(url);
    //指定了OutputType.FILE做为参数传递给getScreenshotAs()方法,其含义是将截取的屏幕以文件形式返回。
    File srcFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
    //利用IoUtils工具类的copyFile()方法保存getScreenshotAs()返回的文件对象。

    try {
        IoUtils.copyFile(srcFile,new File("screenshot.png"));
    } catch (IOException e) {
        e.printstacktrace();
    }

    //关闭浏览器
    driver.quit();
}
项目:selenium-camp-17    文件:Java7WebDriverFactory.java   
public static WebDriver getDriverUsingSwitch() {
    final String browser = System.getProperty("browser");

    if (browser == null || browser.isEmpty()) {
        throw new IllegalStateException("'browser' property is missing!");
    }

    switch (browser) {
        case CHROME:
            return new ChromeDriver();
        case FIREFOX:
            return new FirefoxDriver();
        default:
            throw new IllegalArgumentException(browser + " browser is not supported!");
    }
}
项目:akita    文件:MobileChrome.java   
/**
 * Создание instance google chrome эмулирующего работу на мобильном устройстве (по умолчанию nexus 5)
 * Мобильное устройство может быть задано через системные переменные
 *
 * @param capabilities настройки Chrome браузера
 * @return возвращает новый instance Chrome драйера
 */

@Override
public WebDriver createDriver(DesiredCapabilities capabilities) {
    log.info("---------------run CustomMobileDriver---------------------");
    String mobileDeviceName = loadSystemPropertyOrDefault("device","Nexus 5");
    Map<String,String> mobileEmulation = new HashMap<>();
    mobileEmulation.put("deviceName",mobileDeviceName);

    Map<String,Object> chromeOptions = new HashMap<>();
    chromeOptions.put("mobileEmulation",mobileEmulation);

    DesiredCapabilities desiredCapabilities = DesiredCapabilities.chrome();
    desiredCapabilities.setCapability(ChromeOptions.CAPABILITY,chromeOptions);
    desiredCapabilities.setbrowserName(desiredCapabilities.chrome().getbrowserName());
    return new ChromeDriver(desiredCapabilities);
}
项目:teasy    文件:SeleniumTestExecutionListener.java   
private WebDriver chrome(Settings settings,DesiredCapabilities customDesiredCapabilities) {
    ChromeDriverManager.getInstance().setup();
    DesiredCapabilities desiredCapabilities = getChromeDesiredCapabilities(settings);
    if (!customDesiredCapabilities.asMap().isEmpty()) {
        desiredCapabilities.merge(customDesiredCapabilities);
    }
    return new ChromeDriver(desiredCapabilities);
}
项目:teasy    文件:ChromeConfigTest.java   
@Test
@NeedRestartDriver
public void chrome_config_test() {
    openPage("main.html",BasePage.class);
    WebDriver webDriver = ((FramesTransparentWebDriver) SeleniumHolder.getWebDriver()).getWrappedDriver();

    Assert.assertTrue(webDriver instanceof ChromeDriver);

    Assert.assertEquals(((RemoteWebDriver) webDriver).getCapabilities().getCapability(CapabilityType.UNEXPECTED_ALERT_BEHAVIoUR),UnexpecteDalertBehavIoUr.IGnorE.toString());
}
项目:Learning-Spring-Boot-2.0-Second-Edition    文件:ChromeDriverFactory.java   
@Override
public ChromeDriver getobject() throws BeansException {
    if (properties.getChrome().isEnabled()) {
        try {
            return new ChromeDriver(chromeDriverService);
        } catch (IllegalStateException e) {
            e.printstacktrace();
            // swallow the exception
        }
    }
    return null;
}
项目:Learning-Spring-Boot-2.0-Second-Edition    文件:WebDriverAutoConfigurationTests.java   
@Test
public void testWithMockedChrome() {
    load(new Class[]{},"com.greglturnquist.webdriver.firefox.enabled:false","com.greglturnquist.webdriver.safari.enabled:false");
    WebDriver driver = context.getBean(WebDriver.class);
    assertthat(ClassUtils.isAssignable(TakesScreenshot.class,driver.getClass())).isTrue();
    assertthat(ClassUtils.isAssignable(ChromeDriver.class,driver.getClass())).isTrue();
}
项目:Learning-Spring-Boot-2.0-Second-Edition    文件:EndToEndTests.java   
@BeforeClass
public static void setUp() throws IOException {
    System.setProperty("webdriver.chrome.driver","ext/chromedriver");
    service = createDefaultService();
    driver = new ChromeDriver(service);
    Path testResults = Paths.get("build","test-results");
    if (!Files.exists(testResults)) {
        Files.createDirectory(testResults);
    }
}
项目:FashionSpider    文件:WeiboLoginAndGetCookie.java   
public static void main(String[] args) throws Exception{
    //配置Chromediver
    System.getProperties().setProperty("webdriver.chrome.driver","chromedriver.exe");
    //开启新WebDriver进程
    WebDriver webDriver = new ChromeDriver();
    //全局隐式等待
    webDriver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS);
    //设定网址
    webDriver.get("https://passport.weibo.cn/signin/login?entry=mweibo&res=wel&wm=3349&r=http%3A%2F%2Fm.weibo.cn%2F");
    //显示等待控制对象
    webdriverwait webdriverwait=new webdriverwait(webDriver,10);
    //等待输入框可用后输入账号密码
    webdriverwait.until(ExpectedConditions.elementToBeClickable(By.id("loginName"))).sendKeys(args[0]);
    webdriverwait.until(ExpectedConditions.elementToBeClickable(By.id("loginPassword"))).sendKeys(args[1]);
    //点击登录
    webDriver.findElement(By.id("loginAction")).click();
    //等待2秒用于页面加载,保证Cookie响应全部获取。
    sleep(2000);
    //获取Cookie并打印
    Set<Cookie> cookies=webDriver.manage().getCookies();
    Iterator iterator=cookies.iterator();
    while (iterator.hasNext()){
        System.out.println(iterator.next().toString());
    }
    //关闭WebDriver,否则并不自动关闭
    webDriver.close();
}
项目:FashionSpider    文件:Test.java   
public static void testSelenium() throws Exception {
    System.getProperties().setProperty("webdriver.chrome.driver","chromedriver.exe");
    WebDriver webDriver = new ChromeDriver();
    webDriver.get("http://huaban.com/");
    Thread.sleep(5000);
    WebElement webElement = webDriver.findElement(By.xpath("/html"));
    System.out.println(webElement.getAttribute("outerHTML"));
    webDriver.close();
}
项目:webdriver-supplier    文件:ListenerTests.java   
private void mockProvider(final WebDriverProvider provider,final int duplicatesAmount,final BeforeMethodListener listener) {
    final WebDriverProvider spyProvider = spy(provider);
    final WebDriver mockDriver = mock(ChromeDriver.class);
    doReturn(mockDriver).when(spyProvider).createDriver(any(),any());
    final List<WebDriverProvider> providers = duplicatesAmount > 1
            ? IntStreamEx.range(0,duplicatesAmount).mapToObj(i -> provider).toList()
            : singletonList(spyProvider);
    doReturn(providers).when(listener).getWebDriverProviders();
}
项目:autotest    文件:WebTestBase.java   
@BeforeEach
void init() {
    //打开chrome浏览器
    System.setProperty("webdriver.chrome.driver",Thread.currentThread().getContextClassLoader()
            .getResource("autotest/" + "chromedriver.exe").getPath());
    ChromeOptions options = new ChromeOptions();
    options.addArguments("disable-infobars");
    d = new ChromeDriver(options);
    d.manage().window().maximize();
    d.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
}
项目:noraUi    文件:DriverFactory.java   
/**
 * Generates a chrome webdriver.
 *
 * @param headlessMode
 *            Enable headless mode ?
 * @return
 *         A chrome webdriver
 * @throws TechnicalException
 *             if an error occured when Webdriver setExecutable to true.
 */
private WebDriver generateGoogleChromeDriver(boolean headlessMode) throws TechnicalException {
    final String pathWebdriver = DriverFactory.getPath(Driver.CHROME);
    if (!new File(pathWebdriver).setExecutable(true)) {
        throw new TechnicalException(Messages.getMessage(TechnicalException.TECHNICAL_ERROR_MESSAGE_WEBDRIVER_SET_EXECUTABLE));
    }
    logger.info("Generating Chrome driver ({}) ...",pathWebdriver);

    System.setProperty(Driver.CHROME.getDriverName(),pathWebdriver);

    final ChromeOptions chromeOptions = new ChromeOptions();
    final DesiredCapabilities capabilities = DesiredCapabilities.chrome();
    capabilities.setCapability(CapabilityType.ForSeleniumServer.ENSURING_CLEAN_SESSION,true);
    capabilities.setCapability(CapabilityType.UNEXPECTED_ALERT_BEHAVIoUR,UnexpecteDalertBehavIoUr.ACCEPT);

    setLoggingLevel(capabilities);

    if (Context.isHeadless()) {
        chromeOptions.addArguments("--headless");
    }

    // Proxy configuration
    if (Context.getProxy().getProxyType() != ProxyType.UNSPECIFIED && Context.getProxy().getProxyType() != ProxyType.AUTODETECT) {
        capabilities.setCapability(CapabilityType.PROXY,Context.getProxy());
    }

    setChromeOptions(capabilities,chromeOptions);

    String withWhitelistedIps = Context.getWebdriversProperties("withWhitelistedIps");
    if (withWhitelistedIps != null && !"".equals(withWhitelistedIps)) {
        ChromeDriverService service = new ChromeDriverService.Builder().withWhitelistedIps(withWhitelistedIps).withVerbose(false).build();
        return new ChromeDriver(service,capabilities);
    } else {
        return new ChromeDriver(capabilities);
    }
}
项目:SeWebDriver_Homework    文件:ProductTest.java   
@Before
public void start() {
    driver = new ChromeDriver();
    //driver = new FirefoxDriver();
    //driver = new InternetExplorerDriver();
    wait = new webdriverwait(driver,10);
}
项目:selenium-camp-17    文件:Java8WebDriverFactory.java   
public static WebDriver getDriverUsingMatcherAndCommonFunctions() {
    return Match(System.getProperty("browser")).of(
            Case(anyOf(isNull(),String::isEmpty),() -> { throw new IllegalStateException("'browser' property is missing!"); }),Case(CHROME::equalsIgnoreCase,() -> new ChromeDriver()),Case(FIREFOX::equalsIgnoreCase,() -> new FirefoxDriver()),Case($(),browser -> { throw new IllegalArgumentException(browser + " browser is not supported!"); }));
}
项目:SeWebDriver_Homework    文件:AuthorizationTest.java   
@Before
public void start() {
    /*
    // Collect login data before start
    Scanner in = new Scanner(system.in);
    System.out.println ("Enter login: ");
    email = in.nextLine();
    System.out.println ("Enter password: ");
    psw = in.nextLine(); */
    //open new window
    driver = new ChromeDriver();
    wait = new webdriverwait(driver,10);
}
项目:SeWebDriver_Homework    文件:UserRegistrationTest.java   
@Before
public void start() {
    driver = new ChromeDriver();
    //driver = new FirefoxDriver();
    //driver = new InternetExplorerDriver();
    wait = new webdriverwait(driver,10);
}
项目:SeleniumTest    文件:WebdriverTest.java   
static void test() {
    System.setProperty("webdriver.chrome.driver","D:\\selenium\\chromedriver_win32\\chromedriver.exe");

    WebDriver driver = new ChromeDriver();

    driver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
    driver.manage().timeouts().pageLoadTimeout(5,TimeUnit.SECONDS);

    String url = "http://www.baidu.com/";

    driver.get(url);

        //��ȡ��ǰҳ��ȫ��iframe������iframe����Ԫ��
        try {
            List<WebElement> iframes = driver.findElements(By.tagName("iframe")); //��ȡȫ��iframe��ǩ
            if(iframes.size()!=0) {
                for(WebElement iframe : iframes) {
                    if(iframe.getSize() != null) {
                          System.out.println(iframe.getAttribute("outerHtml"));
                    }
                }
            }else{
                System.out.println("��ҳ�治����iframe");
            }               
        }catch(Exception e) {
            System.out.println(e);
        }

}
项目:modern.core.java.repo    文件:browserManager.java   
public WebDriver maximizebrowserAndDrivers() {
    String chromePath = System.getProperty("user.dir") + "/Drivers/chrome/chromedriver";
    System.setProperty("webdriver.chrome.driver",chromePath);

    ChromeOptions options = new ChromeOptions();
    options.addArguments("--incognito");
    this.driver = new ChromeDriver();
    driver.manage().window().maximize();
    return driver;

}
项目:bromium    文件:ChromeDriversupplierTest.java   
@Test
public void callsTheCorrectConstructor() throws Exception {
    ChromeDriverService chromeDriverService = mock(ChromeDriverService.class);
    DesiredCapabilities desiredCapabilities = mock(DesiredCapabilities.class);
    ChromeDriver expected = mock(ChromeDriver.class);

    whenNew(ChromeDriver.class).withArguments(chromeDriverService,desiredCapabilities).thenReturn(expected);

    ChromeDriversupplier chromeDriversupplier = new ChromeDriversupplier();
    WebDriver actual = chromeDriversupplier.get(chromeDriverService,desiredCapabilities);

    assertEquals(expected,actual);
}
项目:selenium-camp-17    文件:Java8WebDriverFactory.java   
public static WebDriver getDriverUsingMatcherAndCustomFunctions(DesiredCapabilities capabilities) {
    return Match(capabilities).of(
            Case(isNull(),() -> { throw new IllegalStateException("DesiredCapabilities are missing!"); }),Case(hasNobrowser,() -> { throw new IllegalArgumentException("'browser' capability is missing!"); }),Case(isChrome,caps -> new ChromeDriver(caps)),Case(isFirefox,caps -> new FirefoxDriver(caps)),caps -> { throw new IllegalArgumentException(caps.getbrowserName() + " browser is not supported!"); }));
}
项目:selenium-jupiter    文件:ChromeWithGlobalOptionsJupiterTest.java   
@Test
void webrtcTest(ChromeDriver driver) {
    driver.get(
            "https://webrtc.github.io/samples/src/content/devices/input-output/");
    assertthat(driver.findElement(By.id("video")).getTagName(),equalTo("video"));
}
项目:Spring-Security-Third-Edition    文件:SeleniumTestUtilities.java   
public static WebDriver getChromeDriver(String pathtochromeExecutable)
{
    String path = System.getProperty("user.dir") + "\\Drivers\\chromedriver.exe";
    System.setProperty("webdriver.chrome.driver",path);

    Map<String,Object> chromeOptions = new HashMap<String,Object>();
    chromeOptions.put("binary",pathtochromeExecutable);
    DesiredCapabilities capabilities = DesiredCapabilities.chrome();
    capabilities.setCapability(ChromeOptions.CAPABILITY,chromeOptions);

    return new ChromeDriver(capabilities);
}
项目:selenium-jupiter    文件:ScreenshotPngTest.java   
@Test
void screenshottest(ChromeDriver driver) {
    driver.get("https://bonigarcia.github.io/selenium-jupiter/");
    assertthat(driver.getTitle(),containsstring("A JUnit 5 extension for Selenium WebDriver"));

    imageFile = new File("screenshottest_arg0_ChromeDriver_"
            + driver.getSessionId() + ".png");
}
项目:selenium-jupiter    文件:ScreenshotBase64Test.java   
@Test
void screenshottest(ChromeDriver driver) {
    driver.get("https://bonigarcia.github.io/selenium-jupiter/");
    assertthat(driver.getTitle(),containsstring("A JUnit 5 extension for Selenium WebDriver"));

    imageFile = new File("screenshottest_arg0_ChromeDriver_"
            + driver.getSessionId() + ".png");
}
项目:selenium-jupiter    文件:ScreenshotSurefireTest.java   
@Test
void screenshottest(ChromeDriver driver) {
    driver.get("https://bonigarcia.github.io/selenium-jupiter/");
    assertthat(driver.getTitle(),containsstring("A JUnit 5 extension for Selenium WebDriver"));

    imageName = new File(
            "./target/surefire-reports/io.github.bonigarcia.test.screenshot.ScreenshotSurefireTest","screenshottest_arg0_ChromeDriver_" + driver.getSessionId()
                    + ".png");
}
项目:f4f-tts    文件:ScrapperTtsUpdater.java   
private void updateTt(Consumer<Tt> onTtUpsert,Consumer<TtResult> onTtResultUpsert,ChromeDriver driver,Tt tt) {
    tt.setUrl(String.format("%s%d/","https://www.facebook.com/groups/first4figures/permalink/",tt.getId()));

    driver.get(tt.getUrl());

    WebElement timestampElement = driver.findElementByCssSelector(String.format("a[href*='%s']>[data-utime]",tt.getId()));
    List<WebElement> values = driver.findElementsByCssSelector("a[data-tooltip-content$='other people']");
    List<WebElement> category = driver.findElementsByCssSelector("div[role='presentation']>div:nth-child(2)>span");


    if (timestampElement != null) {
        Long timestamp = Long.parseLong(timestampElement.getAttribute("data-utime"));
        tt.setCreationDate(timestamp);
    }

    if (values.size() < 2 || category.size() < 2) {
        throw new RuntimeException("Couldn't parse TT from page: " + tt);
    }

    TtResult ttResult = new TtResult(UUID.randomUUID().toString(),tt.getId(),Instant.Now().getEpochSecond());
    for (int i = 0; i < 2; i++) {
        Matcher matcher = Pattern.compile("-?\\d+").matcher(values.get(i).getAttribute("data-tooltip-content"));
        if (!matcher.find()) {
            throw new RuntimeException("Couldn't parse TT result from page : " + tt);
        }

        String label = category.get(i).getText();
        Long value = Long.parseLong(matcher.group());
        if ("Yes".equalsIgnoreCase(label)) {
            ttResult.setYes(value);
        } else if ("No".equalsIgnoreCase(label)) {
            ttResult.setNo(value);
        }
    }

    LOGGER.log(Level.INFO,String.format("upsert : %s",tt.toString()));
    onTtUpsert.accept(tt);
    LOGGER.log(Level.INFO,ttResult.toString()));
    onTtResultUpsert.accept(ttResult);
}
项目:selenium-jupiter    文件:SeleniumJupiterTest.java   
@Test
public void testWithChromeAndFirefox(ChromeDriver driver1,FirefoxDriver driver2) {
    driver1.get("http://www.seleniumhq.org/");
    driver2.get("http://junit.org/junit5/");
    assertthat(driver1.getTitle(),startsWith("Selenium"));
    assertthat(driver2.getTitle(),equalTo("JUnit 5"));
}
项目:selenium-jupiter    文件:ChromeJupiterTest.java   
@disabled("Redudant test for Travis CI suite")
// tag::snippet-in-doc[]
@Test
public void testWithTwoChromes(ChromeDriver driver1,ChromeDriver driver2) {
    driver1.get("http://www.seleniumhq.org/");
    driver2.get("http://junit.org/junit5/");
    assertthat(driver1.getTitle(),equalTo("JUnit 5"));
}
项目:selenium-jupiter    文件:ForcedAnnotationReaderTest.java   
static Stream<Arguments> forcedTestProvider() {
    return Stream.of(
            Arguments.of(AppiumDriverHandler.class,ForcedAppiumJupiterTest.class,AppiumDriver.class,"appiumNoCapabilitiesTest"),Arguments.of(AppiumDriverHandler.class,"appiumWithCapabilitiesTest"),Arguments.of(ChromeDriverHandler.class,ForcedBadChromeJupiterTest.class,ChromeDriver.class,"chromeTest"),Arguments.of(FirefoxDriverHandler.class,ForcedBadFirefoxJupiterTest.class,FirefoxDriver.class,"firefoxTest"),Arguments.of(RemoteDriverHandler.class,ForcedBadRemoteJupiterTest.class,RemoteWebDriver.class,"remoteTest"),Arguments.of(EdgeDriverHandler.class,ForcedEdgeJupiterTest.class,EdgeDriver.class,"edgeTest"),Arguments.of(OperaDriverHandler.class,ForcedOperaJupiterTest.class,OperaDriver.class,"operaTest"),Arguments.of(SafariDriverHandler.class,ForcedSafariJupiterTest.class,SafariDriver.class,"safariTest"));
}
项目:Java-Testing-ToolBox    文件:ChromeConfiguration.java   
/**
 * {@inheritDoc}
 */
@Override
public ChromeDriver start(Capabilities other) {
    Capabilities capabilities = this.mergeCapabilities(other);

    if (capabilities == null) {
        return new ChromeDriver();
    }

    return new ChromeDriver(capabilities);
}
项目:Spring-Security-Third-Edition    文件:SeleniumTestUtilities.java   
public static WebDriver getChromeDriver()
{
       String path = "src/test/resources/chromedriver";
    System.setProperty("webdriver.chrome.driver",path);

    DesiredCapabilities capabilities = DesiredCapabilities.chrome();
       capabilities.setCapability("networkConnectionEnabled",true);
       capabilities.setCapability("browserConnectionEnabled",true);

       return new ChromeDriver(capabilities);
}
项目:Java-Testing-ToolBox    文件:SeleniumConfiguration.java   
/**
 * Load the default configuration. It will not erase prevIoUs non-default configurations.
 * 
 * @return Itself.
 */
public SeleniumConfiguration loadDefaultConfiguration() {
    this.getConfiguration().put(ChromeDriver.class,new ChromeConfiguration());
    this.getConfiguration().put(EdgeDriver.class,new EdgeConfiguration());
    this.getConfiguration().put(FirefoxDriver.class,new FirefoxConfiguration());
    this.getConfiguration().put(HtmlUnitConfiguration.class,new HtmlUnitConfiguration());
    this.getConfiguration().put(InternetExplorerConfiguration.class,new InternetExplorerConfiguration());
    this.getConfiguration().put(OperaConfiguration.class,new OperaConfiguration());
    this.getConfiguration().put(PhantomJSConfiguration.class,new PhantomJSConfiguration());
    this.getConfiguration().put(SafariDriver.class,new SafariConfiguration());

    return this;
}
项目:buildradiator    文件:RadiatorWebDriverTest.java   
@BeforeClass
public static void sharedForAllTests() {
    // Keep the WebDriver browser window open between tests
    ChromeOptions co = new ChromeOptions();
    co.addArguments("headless");
    co.addArguments("window-size=1200x800");
    DRIVER = new ChromeDriver(co);
    FWD = new FluentWebDriver(DRIVER);
}

python+selenium启动chrome浏览器失败

python+selenium启动chrome浏览器失败

之前已经用Firefox试过,可以正常启动Firefpx浏览器,下载了最新的chrome浏览器,chromedriver.exe也下载了,放在chrome目录下。但是启动chrome失败,错误信息提示如图。我有2个电脑,同样的代码,另一个可以成功,这个就不行了。

python的源码如下:

import os
from selenium import webdriver
chromepath=os.path.abspath(r"C:\Program Files (x86)\Google\Chrome\Application")
openchrome=webdriver.Chrome(chromepath)

报错图如下:

今天关于如何配置ChromeDriver通过Selenium以无头模式启动Chrome浏览器?chrome 无头模式的介绍到此结束,谢谢您的阅读,有关3-Python爬虫-动态HTML/Selenium+PhantomJS/chrome无头浏览器-chromedriver、Chrome浏览器通过Pythonselenium自动更新时如何使用特定版本的ChromeDriver、org.openqa.selenium.chrome.ChromeDriver的实例源码、python+selenium启动chrome浏览器失败等更多相关知识的信息可以在本站进行查询。

本文标签: