<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
      <title>Class CreateTargetCommandSettings </title>
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <meta name="title" content="Class CreateTargetCommandSettings ">
      
      <meta name="description" content="CreateTarget">
      <link rel="icon" href="../images/favicon.ico">
      <link rel="stylesheet" href="../public/docfx.min.css">
      <link rel="stylesheet" href="../public/main.css">
      <meta name="docfx:navrel" content="../toc.html">
      <meta name="docfx:tocrel" content="toc.html">
      
      <meta name="docfx:rel" content="../">
      
      
      <meta name="docfx:docurl" content="https://github.com/SeleniumHQ/selenium/new/trunk/apiSpec/new?filename=OpenQA_Selenium_DevTools_V141_Target_CreateTargetCommandSettings.md&amp;value=---%0Auid%3A%20OpenQA.Selenium.DevTools.V141.Target.CreateTargetCommandSettings%0Asummary%3A%20&#39;*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax&#39;%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">
      <meta name="loc:inThisArticle" content="In this article">
      <meta name="loc:searchResultsCount" content="{count} results for &quot;{query}&quot;">
      <meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
      <meta name="loc:tocFilter" content="Filter by title">
      <meta name="loc:nextArticle" content="Next">
      <meta name="loc:prevArticle" content="Previous">
      <meta name="loc:themeLight" content="Light">
      <meta name="loc:themeDark" content="Dark">
      <meta name="loc:themeAuto" content="Auto">
      <meta name="loc:changeTheme" content="Change theme">
      <meta name="loc:copy" content="Copy">
      <meta name="loc:downloadPdf" content="Download PDF">

      <script type="module" src="./../public/docfx.min.js"></script>

      <script>
        const theme = localStorage.getItem('theme') || 'auto'
        document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme)
      </script>

  </head>

  <body class="tex2jax_ignore" data-layout="" data-yaml-mime="ManagedReference">
    <header class="bg-body border-bottom">
      <nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
        <div class="container-xxl flex-nowrap">
          <a class="navbar-brand" href="../index.html">
            <img id="logo" class="svg" src="../images/logo.svg" alt="Selenium .NET API">
            Selenium .NET API
          </a>
          <button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
            <i class="bi bi-three-dots"></i>
          </button>
          <div class="collapse navbar-collapse" id="navpanel">
            <div id="navbar">
              <form class="search" role="search" id="search">
                <i class="bi bi-search"></i>
                <input class="form-control" id="search-query" type="search" disabled placeholder="Search" autocomplete="off" aria-label="Search">
              </form>
            </div>
          </div>
        </div>
      </nav>
    </header>

    <main class="container-xxl">
      <div class="toc-offcanvas">
        <div class="offcanvas-md offcanvas-start" tabindex="-1" id="tocOffcanvas" aria-labelledby="tocOffcanvasLabel">
          <div class="offcanvas-header">
            <h5 class="offcanvas-title" id="tocOffcanvasLabel">Table of Contents</h5>
            <button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#tocOffcanvas" aria-label="Close"></button>
          </div>
          <div class="offcanvas-body">
            <nav class="toc" id="toc"></nav>
          </div>
        </div>
      </div>

      <div class="content">
        <div class="actionbar">
          <button class="btn btn-lg border-0 d-md-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#tocOffcanvas" aria-controls="tocOffcanvas" aria-expanded="false" aria-label="Show table of contents">
            <i class="bi bi-list"></i>
          </button>

          <nav id="breadcrumb"></nav>
        </div>

        <article data-uid="OpenQA.Selenium.DevTools.V141.Target.CreateTargetCommandSettings">



  <h1 id="OpenQA_Selenium_DevTools_V141_Target_CreateTargetCommandSettings" data-uid="OpenQA.Selenium.DevTools.V141.Target.CreateTargetCommandSettings" class="text-break">
Class CreateTargetCommandSettings  <a class="header-action link-secondary" title="View source" href="https://github.com/SeleniumHQ/selenium/blob/trunk/bazel-bin/dotnet/src/webdriver/cdp/v141/Target/CreateTargetCommand.cs/#L12"><i class="bi bi-code-slash"></i></a>
  </h1>

  <div class="facts text-secondary">
    <dl><dt>Namespace</dt><dd><a class="xref" href="OpenQA.html">OpenQA</a>.<a class="xref" href="OpenQA.Selenium.html">Selenium</a>.<a class="xref" href="OpenQA.Selenium.DevTools.html">DevTools</a>.<a class="xref" href="OpenQA.Selenium.DevTools.V141.html">V141</a>.<a class="xref" href="OpenQA.Selenium.DevTools.V141.Target.html">Target</a></dd></dl>
  <dl><dt>Assembly</dt><dd>WebDriver.dll</dd></dl>
  </div>

  <div class="markdown summary"><p>CreateTarget</p>
</div>
  <div class="markdown conceptual"></div>

  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public sealed class CreateTargetCommandSettings : ICommand</code></pre>
  </div>




  <dl class="typelist inheritance">
    <dt>Inheritance</dt>
    <dd>
      <div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
      <div><span class="xref">CreateTargetCommandSettings</span></div>
    </dd>
  </dl>

  <dl class="typelist implements">
    <dt>Implements</dt>
    <dd>
      <div><a class="xref" href="OpenQA.Selenium.DevTools.ICommand.html">ICommand</a></div>
    </dd>
  </dl>


  <dl class="typelist inheritedMembers">
    <dt>Inherited Members</dt>
    <dd>
    <div>
      <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>
    </div>
    <div>
      <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object)</a>
    </div>
    <div>
      <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object, object)</a>
    </div>
    <div>
      <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object, object)</a>
    </div>
    <div>
      <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a>
    </div>
    <div>
      <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>
    </div>
  </dd></dl>






  <h2 class="section" id="properties">Properties
</h2>


  <a id="OpenQA_Selenium_DevTools_V141_Target_CreateTargetCommandSettings_Background_" data-uid="OpenQA.Selenium.DevTools.V141.Target.CreateTargetCommandSettings.Background*"></a>

  <h3 id="OpenQA_Selenium_DevTools_V141_Target_CreateTargetCommandSettings_Background" data-uid="OpenQA.Selenium.DevTools.V141.Target.CreateTargetCommandSettings.Background">
  Background
  <a class="header-action link-secondary" title="View source" href="https://github.com/SeleniumHQ/selenium/blob/trunk/bazel-bin/dotnet/src/webdriver/cdp/v141/Target/CreateTargetCommand.cs/#L88"><i class="bi bi-code-slash"></i></a>
  </h3>

  <div class="markdown level1 summary"><p>Gets or sets the background</p>
</div>
  <div class="markdown level1 conceptual"></div>

  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">[JsonPropertyName(&quot;background&quot;)]
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingDefault)]
public bool? Background { get; set; }</code></pre>
  </div>





  <h4 class="section">Property Value</h4>
  <dl class="parameters">
    <dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a>?</dt>
    <dd></dd>
  </dl>








  <a id="OpenQA_Selenium_DevTools_V141_Target_CreateTargetCommandSettings_BrowserContextId_" data-uid="OpenQA.Selenium.DevTools.V141.Target.CreateTargetCommandSettings.BrowserContextId*"></a>

  <h3 id="OpenQA_Selenium_DevTools_V141_Target_CreateTargetCommandSettings_BrowserContextId" data-uid="OpenQA.Selenium.DevTools.V141.Target.CreateTargetCommandSettings.BrowserContextId">
  BrowserContextId
  <a class="header-action link-secondary" title="View source" href="https://github.com/SeleniumHQ/selenium/blob/trunk/bazel-bin/dotnet/src/webdriver/cdp/v141/Target/CreateTargetCommand.cs/#L67"><i class="bi bi-code-slash"></i></a>
  </h3>

  <div class="markdown level1 summary"><p>Gets or sets the browserContextId</p>
</div>
  <div class="markdown level1 conceptual"></div>

  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">[JsonPropertyName(&quot;browserContextId&quot;)]
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingDefault)]
public string? BrowserContextId { get; set; }</code></pre>
  </div>





  <h4 class="section">Property Value</h4>
  <dl class="parameters">
    <dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
    <dd></dd>
  </dl>








  <a id="OpenQA_Selenium_DevTools_V141_Target_CreateTargetCommandSettings_CommandName_" data-uid="OpenQA.Selenium.DevTools.V141.Target.CreateTargetCommandSettings.CommandName*"></a>

  <h3 id="OpenQA_Selenium_DevTools_V141_Target_CreateTargetCommandSettings_CommandName" data-uid="OpenQA.Selenium.DevTools.V141.Target.CreateTargetCommandSettings.CommandName">
  CommandName
  <a class="header-action link-secondary" title="View source" href="https://github.com/SeleniumHQ/selenium/blob/trunk/bazel-bin/dotnet/src/webdriver/cdp/v141/Target/CreateTargetCommand.cs/#L19"><i class="bi bi-code-slash"></i></a>
  </h3>

  <div class="markdown level1 summary"><p>Gets the name of the command.</p>
</div>
  <div class="markdown level1 conceptual"></div>

  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">[JsonIgnore]
public string CommandName { get; }</code></pre>
  </div>





  <h4 class="section">Property Value</h4>
  <dl class="parameters">
    <dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
    <dd></dd>
  </dl>








  <a id="OpenQA_Selenium_DevTools_V141_Target_CreateTargetCommandSettings_EnableBeginFrameControl_" data-uid="OpenQA.Selenium.DevTools.V141.Target.CreateTargetCommandSettings.EnableBeginFrameControl*"></a>

  <h3 id="OpenQA_Selenium_DevTools_V141_Target_CreateTargetCommandSettings_EnableBeginFrameControl" data-uid="OpenQA.Selenium.DevTools.V141.Target.CreateTargetCommandSettings.EnableBeginFrameControl">
  EnableBeginFrameControl
  <a class="header-action link-secondary" title="View source" href="https://github.com/SeleniumHQ/selenium/blob/trunk/bazel-bin/dotnet/src/webdriver/cdp/v141/Target/CreateTargetCommand.cs/#L74"><i class="bi bi-code-slash"></i></a>
  </h3>

  <div class="markdown level1 summary"><p>Gets or sets the enableBeginFrameControl</p>
</div>
  <div class="markdown level1 conceptual"></div>

  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">[JsonPropertyName(&quot;enableBeginFrameControl&quot;)]
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingDefault)]
public bool? EnableBeginFrameControl { get; set; }</code></pre>
  </div>





  <h4 class="section">Property Value</h4>
  <dl class="parameters">
    <dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a>?</dt>
    <dd></dd>
  </dl>








  <a id="OpenQA_Selenium_DevTools_V141_Target_CreateTargetCommandSettings_ForTab_" data-uid="OpenQA.Selenium.DevTools.V141.Target.CreateTargetCommandSettings.ForTab*"></a>

  <h3 id="OpenQA_Selenium_DevTools_V141_Target_CreateTargetCommandSettings_ForTab" data-uid="OpenQA.Selenium.DevTools.V141.Target.CreateTargetCommandSettings.ForTab">
  ForTab
  <a class="header-action link-secondary" title="View source" href="https://github.com/SeleniumHQ/selenium/blob/trunk/bazel-bin/dotnet/src/webdriver/cdp/v141/Target/CreateTargetCommand.cs/#L95"><i class="bi bi-code-slash"></i></a>
  </h3>

  <div class="markdown level1 summary"><p>Gets or sets the forTab</p>
</div>
  <div class="markdown level1 conceptual"></div>

  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">[JsonPropertyName(&quot;forTab&quot;)]
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingDefault)]
public bool? ForTab { get; set; }</code></pre>
  </div>





  <h4 class="section">Property Value</h4>
  <dl class="parameters">
    <dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a>?</dt>
    <dd></dd>
  </dl>








  <a id="OpenQA_Selenium_DevTools_V141_Target_CreateTargetCommandSettings_Height_" data-uid="OpenQA.Selenium.DevTools.V141.Target.CreateTargetCommandSettings.Height*"></a>

  <h3 id="OpenQA_Selenium_DevTools_V141_Target_CreateTargetCommandSettings_Height" data-uid="OpenQA.Selenium.DevTools.V141.Target.CreateTargetCommandSettings.Height">
  Height
  <a class="header-action link-secondary" title="View source" href="https://github.com/SeleniumHQ/selenium/blob/trunk/bazel-bin/dotnet/src/webdriver/cdp/v141/Target/CreateTargetCommand.cs/#L53"><i class="bi bi-code-slash"></i></a>
  </h3>

  <div class="markdown level1 summary"><p>Gets or sets the height</p>
</div>
  <div class="markdown level1 conceptual"></div>

  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">[JsonPropertyName(&quot;height&quot;)]
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingDefault)]
public long? Height { get; set; }</code></pre>
  </div>





  <h4 class="section">Property Value</h4>
  <dl class="parameters">
    <dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int64">long</a>?</dt>
    <dd></dd>
  </dl>








  <a id="OpenQA_Selenium_DevTools_V141_Target_CreateTargetCommandSettings_Hidden_" data-uid="OpenQA.Selenium.DevTools.V141.Target.CreateTargetCommandSettings.Hidden*"></a>

  <h3 id="OpenQA_Selenium_DevTools_V141_Target_CreateTargetCommandSettings_Hidden" data-uid="OpenQA.Selenium.DevTools.V141.Target.CreateTargetCommandSettings.Hidden">
  Hidden
  <a class="header-action link-secondary" title="View source" href="https://github.com/SeleniumHQ/selenium/blob/trunk/bazel-bin/dotnet/src/webdriver/cdp/v141/Target/CreateTargetCommand.cs/#L102"><i class="bi bi-code-slash"></i></a>
  </h3>

  <div class="markdown level1 summary"><p>Gets or sets the hidden</p>
</div>
  <div class="markdown level1 conceptual"></div>

  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">[JsonPropertyName(&quot;hidden&quot;)]
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingDefault)]
public bool? Hidden { get; set; }</code></pre>
  </div>





  <h4 class="section">Property Value</h4>
  <dl class="parameters">
    <dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a>?</dt>
    <dd></dd>
  </dl>








  <a id="OpenQA_Selenium_DevTools_V141_Target_CreateTargetCommandSettings_Left_" data-uid="OpenQA.Selenium.DevTools.V141.Target.CreateTargetCommandSettings.Left*"></a>

  <h3 id="OpenQA_Selenium_DevTools_V141_Target_CreateTargetCommandSettings_Left" data-uid="OpenQA.Selenium.DevTools.V141.Target.CreateTargetCommandSettings.Left">
  Left
  <a class="header-action link-secondary" title="View source" href="https://github.com/SeleniumHQ/selenium/blob/trunk/bazel-bin/dotnet/src/webdriver/cdp/v141/Target/CreateTargetCommand.cs/#L32"><i class="bi bi-code-slash"></i></a>
  </h3>

  <div class="markdown level1 summary"><p>Gets or sets the left</p>
</div>
  <div class="markdown level1 conceptual"></div>

  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">[JsonPropertyName(&quot;left&quot;)]
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingDefault)]
public long? Left { get; set; }</code></pre>
  </div>





  <h4 class="section">Property Value</h4>
  <dl class="parameters">
    <dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int64">long</a>?</dt>
    <dd></dd>
  </dl>








  <a id="OpenQA_Selenium_DevTools_V141_Target_CreateTargetCommandSettings_NewWindow_" data-uid="OpenQA.Selenium.DevTools.V141.Target.CreateTargetCommandSettings.NewWindow*"></a>

  <h3 id="OpenQA_Selenium_DevTools_V141_Target_CreateTargetCommandSettings_NewWindow" data-uid="OpenQA.Selenium.DevTools.V141.Target.CreateTargetCommandSettings.NewWindow">
  NewWindow
  <a class="header-action link-secondary" title="View source" href="https://github.com/SeleniumHQ/selenium/blob/trunk/bazel-bin/dotnet/src/webdriver/cdp/v141/Target/CreateTargetCommand.cs/#L81"><i class="bi bi-code-slash"></i></a>
  </h3>

  <div class="markdown level1 summary"><p>Gets or sets the newWindow</p>
</div>
  <div class="markdown level1 conceptual"></div>

  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">[JsonPropertyName(&quot;newWindow&quot;)]
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingDefault)]
public bool? NewWindow { get; set; }</code></pre>
  </div>





  <h4 class="section">Property Value</h4>
  <dl class="parameters">
    <dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a>?</dt>
    <dd></dd>
  </dl>








  <a id="OpenQA_Selenium_DevTools_V141_Target_CreateTargetCommandSettings_Top_" data-uid="OpenQA.Selenium.DevTools.V141.Target.CreateTargetCommandSettings.Top*"></a>

  <h3 id="OpenQA_Selenium_DevTools_V141_Target_CreateTargetCommandSettings_Top" data-uid="OpenQA.Selenium.DevTools.V141.Target.CreateTargetCommandSettings.Top">
  Top
  <a class="header-action link-secondary" title="View source" href="https://github.com/SeleniumHQ/selenium/blob/trunk/bazel-bin/dotnet/src/webdriver/cdp/v141/Target/CreateTargetCommand.cs/#L39"><i class="bi bi-code-slash"></i></a>
  </h3>

  <div class="markdown level1 summary"><p>Gets or sets the top</p>
</div>
  <div class="markdown level1 conceptual"></div>

  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">[JsonPropertyName(&quot;top&quot;)]
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingDefault)]
public long? Top { get; set; }</code></pre>
  </div>





  <h4 class="section">Property Value</h4>
  <dl class="parameters">
    <dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int64">long</a>?</dt>
    <dd></dd>
  </dl>








  <a id="OpenQA_Selenium_DevTools_V141_Target_CreateTargetCommandSettings_Url_" data-uid="OpenQA.Selenium.DevTools.V141.Target.CreateTargetCommandSettings.Url*"></a>

  <h3 id="OpenQA_Selenium_DevTools_V141_Target_CreateTargetCommandSettings_Url" data-uid="OpenQA.Selenium.DevTools.V141.Target.CreateTargetCommandSettings.Url">
  Url
  <a class="header-action link-secondary" title="View source" href="https://github.com/SeleniumHQ/selenium/blob/trunk/bazel-bin/dotnet/src/webdriver/cdp/v141/Target/CreateTargetCommand.cs/#L25"><i class="bi bi-code-slash"></i></a>
  </h3>

  <div class="markdown level1 summary"><p>Gets or sets the url</p>
</div>
  <div class="markdown level1 conceptual"></div>

  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">[JsonPropertyName(&quot;url&quot;)]
public string Url { get; set; }</code></pre>
  </div>





  <h4 class="section">Property Value</h4>
  <dl class="parameters">
    <dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
    <dd></dd>
  </dl>








  <a id="OpenQA_Selenium_DevTools_V141_Target_CreateTargetCommandSettings_Width_" data-uid="OpenQA.Selenium.DevTools.V141.Target.CreateTargetCommandSettings.Width*"></a>

  <h3 id="OpenQA_Selenium_DevTools_V141_Target_CreateTargetCommandSettings_Width" data-uid="OpenQA.Selenium.DevTools.V141.Target.CreateTargetCommandSettings.Width">
  Width
  <a class="header-action link-secondary" title="View source" href="https://github.com/SeleniumHQ/selenium/blob/trunk/bazel-bin/dotnet/src/webdriver/cdp/v141/Target/CreateTargetCommand.cs/#L46"><i class="bi bi-code-slash"></i></a>
  </h3>

  <div class="markdown level1 summary"><p>Gets or sets the width</p>
</div>
  <div class="markdown level1 conceptual"></div>

  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">[JsonPropertyName(&quot;width&quot;)]
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingDefault)]
public long? Width { get; set; }</code></pre>
  </div>





  <h4 class="section">Property Value</h4>
  <dl class="parameters">
    <dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int64">long</a>?</dt>
    <dd></dd>
  </dl>








  <a id="OpenQA_Selenium_DevTools_V141_Target_CreateTargetCommandSettings_WindowState_" data-uid="OpenQA.Selenium.DevTools.V141.Target.CreateTargetCommandSettings.WindowState*"></a>

  <h3 id="OpenQA_Selenium_DevTools_V141_Target_CreateTargetCommandSettings_WindowState" data-uid="OpenQA.Selenium.DevTools.V141.Target.CreateTargetCommandSettings.WindowState">
  WindowState
  <a class="header-action link-secondary" title="View source" href="https://github.com/SeleniumHQ/selenium/blob/trunk/bazel-bin/dotnet/src/webdriver/cdp/v141/Target/CreateTargetCommand.cs/#L60"><i class="bi bi-code-slash"></i></a>
  </h3>

  <div class="markdown level1 summary"><p>Gets or sets the windowState</p>
</div>
  <div class="markdown level1 conceptual"></div>

  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">[JsonPropertyName(&quot;windowState&quot;)]
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingDefault)]
public WindowState? WindowState { get; set; }</code></pre>
  </div>





  <h4 class="section">Property Value</h4>
  <dl class="parameters">
    <dt><a class="xref" href="OpenQA.Selenium.DevTools.V141.Target.WindowState.html">WindowState</a>?</dt>
    <dd></dd>
  </dl>









</article>

        <div class="contribution d-print-none">
          <a href="https://github.com/SeleniumHQ/selenium/blob/trunk/bazel-bin/dotnet/src/webdriver/cdp/v141/Target/CreateTargetCommand.cs/#L12" class="edit-link">Edit this page</a>
        </div>


      </div>

      <div class="affix">
        <nav id="affix"></nav>
      </div>
    </main>

    <div class="container-xxl search-results" id="search-results"></div>

    <footer class="border-top text-secondary">
      <div class="container-xxl">
        <div class="flex-fill">
          <span>Made with <a href="https://dotnet.github.io/docfx">docfx</a></span>
        </div>
      </div>
    </footer>
  </body>
</html>
