Skip to content

Commit

Permalink
Add mdsnippets (hardkoded#1668)
Browse files Browse the repository at this point in the history
  • Loading branch information
SimonCropp authored Mar 27, 2021
1 parent 3d496da commit 54699e3
Show file tree
Hide file tree
Showing 13 changed files with 137 additions and 33 deletions.
22 changes: 22 additions & 0 deletions .github/workflows/on-push-do-docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
name: on-push-do-docs
on:
push:
jobs:
docs:
runs-on: windows-latest
steps:
- uses: actions/checkout@v2
- name: Run MarkdownSnippets
run: |
dotnet tool install --global MarkdownSnippets.Tool
mdsnippets ${GITHUB_WORKSPACE}
shell: bash
- name: Push changes
run: |
git config --local user.email "[email protected]"
git config --local user.name "GitHub Action"
git commit -m "Docs changes" -a || echo "nothing to commit"
remote="https://${GITHUB_ACTOR}:${{secrets.GITHUB_TOKEN}}@github.com/${GITHUB_REPOSITORY}.git"
branch="${GITHUB_REF:11}"
git push "${remote}" ${branch} || echo "nothing to push"
shell: bash
64 changes: 37 additions & 27 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,64 +49,74 @@ See [this document](https://github.com/hardkoded/puppeteer-sharp/blob/master/CON

## Take screenshots

<!-- snippet: ScreenshotAsync -->
<a id='snippet-screenshotasync'></a>
```cs
await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision);
var browser = await Puppeteer.LaunchAsync(new LaunchOptions
{
Headless = true
});
var page = await browser.NewPageAsync();
var browserFetcher = new BrowserFetcher();
await browserFetcher.DownloadAsync();
await using var browser = await Puppeteer.LaunchAsync(
new LaunchOptions {Headless = true});
await using var page = await browser.NewPageAsync();
await page.GoToAsync("http://www.google.com");
await page.ScreenshotAsync(outputFile);
```
<sup><a href='/lib/PuppeteerSharp.Tests/PageTests/ScreenshotTests.cs#L62-L70' title='Snippet source file'>snippet source</a> | <a href='#snippet-screenshotasync' title='Start of snippet'>anchor</a></sup>
<!-- endSnippet -->

You can also change the view port before generating the screenshot


<!-- snippet: SetViewportAsync -->
<a id='snippet-setviewportasync'></a>
```cs
await page.SetViewportAsync(new ViewPortOptions
await Page.SetViewportAsync(new ViewPortOptions
{
Width = 500,
Height = 500
});
```
<sup><a href='/lib/PuppeteerSharp.Tests/ElementHandleTests/ScreenshotTests.cs#L19-L25' title='Snippet source file'>snippet source</a> | <a href='#snippet-setviewportasync' title='Start of snippet'>anchor</a></sup>
<!-- endSnippet -->


## Generate PDF files

<!-- snippet: PdfAsync -->
<a id='snippet-pdfasync'></a>
```cs
await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision);
var browser = await Puppeteer.LaunchAsync(new LaunchOptions
{
Headless = true
});
var page = await browser.NewPageAsync();
var browserFetcher = new BrowserFetcher();
await browserFetcher.DownloadAsync();
await using var browser = await Puppeteer.LaunchAsync(new LaunchOptions {Headless = true});
await using var page = await browser.NewPageAsync();
await page.GoToAsync("http://www.google.com");
await page.PdfAsync(outputFile);
```
<sup><a href='/lib/PuppeteerSharp.Tests/PageTests/PdfTests.cs#L27-L36' title='Snippet source file'>snippet source</a> | <a href='#snippet-pdfasync' title='Start of snippet'>anchor</a></sup>
<!-- endSnippet -->

## Inject HTML

<!-- snippet: SetContentAsync -->
<a id='snippet-setcontentasync'></a>
```cs
using(var page = await browser.NewPageAsync())
{
await page.SetContentAsync("<div>My Receipt</div>");
var result = await page.GetContentAsync();
await page.PdfAsync(outputFile);
SaveHtmlToDB(result);
}
await using var page = await browser.NewPageAsync();
await page.SetContentAsync("<div>My Receipt</div>");
var result = await page.GetContentAsync();
```
<sup><a href='/lib/PuppeteerSharp.Tests/PageTests/SetContentTests.cs#L19-L25' title='Snippet source file'>snippet source</a> | <a href='#snippet-setcontentasync' title='Start of snippet'>anchor</a></sup>
<!-- endSnippet -->

## Evaluate Javascript

<!-- snippet: Evaluate -->
<a id='snippet-evaluate'></a>
```cs
using (var page = await browser.NewPageAsync())
{
var seven = await page.EvaluateExpressionAsync<int>("4 + 3");
var someObject = await page.EvaluateFunctionAsync<dynamic>("(value) => ({a: value})", 5);
Console.WriteLine(someObject.a);
}
await using var page = await browser.NewPageAsync();
var seven = await page.EvaluateExpressionAsync<int>("4 + 3");
var someObject = await page.EvaluateFunctionAsync<dynamic>("(value) => ({a: value})", 5);
Console.WriteLine(someObject.a);
```
<sup><a href='/lib/PuppeteerSharp.Tests/ElementHandleTests/EvaluateFunctionTests.cs#L17-L22' title='Snippet source file'>snippet source</a> | <a href='#snippet-evaluate' title='Start of snippet'>anchor</a></sup>
<!-- endSnippet -->

## Wait For Selector

Expand Down
2 changes: 1 addition & 1 deletion docfx_project/examples/LodCDP.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,4 +34,4 @@ using (var browser = await Puppeteer.LaunchAsync(browserOptions, GetLoggerFactor
{
//Some code
}
```
```
2 changes: 1 addition & 1 deletion docfx_project/examples/Page.ScreenshotAsync.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,4 +26,4 @@ using (var page = await browser.NewPageAsync())
await page.GoToAsync(url);
await page.ScreenshotAsync(file);
}
```
```
2 changes: 1 addition & 1 deletion docfx_project/examples/ReuseChrome.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,4 +28,4 @@ using (var page = await browser.NewPageAsync())
{
// use page
}
```
```
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
using System;
using System.Threading.Tasks;
using Xunit;
using Xunit.Abstractions;
Expand All @@ -11,6 +12,16 @@ public EvaluateFunctionTests(ITestOutputHelper output) : base(output)
{
}

async Task Usage(Browser browser)
{
#region Evaluate
await using var page = await browser.NewPageAsync();
var seven = await page.EvaluateExpressionAsync<int>("4 + 3");
var someObject = await page.EvaluateFunctionAsync<dynamic>("(value) => ({a: value})", 5);
Console.WriteLine(someObject.a);
#endregion
}

[Fact(Timeout = TestConstants.DefaultTestTimeout)]
public async Task QuerySelectorShouldWork()
{
Expand Down Expand Up @@ -76,4 +87,4 @@ public async Task QuerySelectorAllShouldNotThrowInCaseOfMissingSelector()
Assert.Equal(0, nodesLength);
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,13 @@ public ScreenshotTests(ITestOutputHelper output) : base(output)
[Fact(Timeout = TestConstants.DefaultTestTimeout)]
public async Task ShouldFire()
{
#region SetViewportAsync
await Page.SetViewportAsync(new ViewPortOptions
{
Width = 500,
Height = 500
});
#endregion
await Page.GoToAsync(TestConstants.ServerUrl + "/grid.html");
await Page.EvaluateExpressionAsync("window.scrollBy(50, 100)");
var elementHandle = await Page.QuerySelectorAsync(".box:nth-of-type(3)");
Expand Down
24 changes: 24 additions & 0 deletions lib/PuppeteerSharp.Tests/PageTests/PdfTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,30 @@ public PdfTests(ITestOutputHelper output) : base(output)
{
}

[Fact]
public async Task Usage()
{
var outputFile = Path.Combine(BaseDirectory, "Usage.pdf");
var fileInfo = new FileInfo(outputFile);
if (fileInfo.Exists)
{
fileInfo.Delete();
}

#region PdfAsync

var browserFetcher = new BrowserFetcher();
await browserFetcher.DownloadAsync();
await using var browser = await Puppeteer.LaunchAsync(new LaunchOptions {Headless = true});
await using var page = await browser.NewPageAsync();
await page.GoToAsync("http://www.google.com");
await page.PdfAsync(outputFile);

#endregion

Assert.True(File.Exists(outputFile));
}

[Fact(Timeout = TestConstants.DefaultTestTimeout)]
public async Task ShouldBeAbleToSaveFile()
{
Expand Down
20 changes: 20 additions & 0 deletions lib/PuppeteerSharp.Tests/PageTests/ScreenshotTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,26 @@ await page.SetViewportAsync(new ViewPortOptions
}
}

[Fact]
public async Task Usage()
{
var outputFile = Path.Combine(BaseDirectory, "Usage.png");
var fileInfo = new FileInfo(outputFile);
if (fileInfo.Exists)
{
fileInfo.Delete();
}
#region ScreenshotAsync
var browserFetcher = new BrowserFetcher();
await browserFetcher.DownloadAsync();
await using var browser = await Puppeteer.LaunchAsync(
new LaunchOptions {Headless = true});
await using var page = await browser.NewPageAsync();
await page.GoToAsync("http://www.google.com");
await page.ScreenshotAsync(outputFile);
#endregion
Assert.True(File.Exists(outputFile));
}
[SkipBrowserFact(skipFirefox: true)]
public async Task ShouldWork()
{
Expand Down
11 changes: 11 additions & 0 deletions lib/PuppeteerSharp.Tests/PageTests/SetContentTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,17 @@ public SetContentTests(ITestOutputHelper output) : base(output)
{
}

async Task Usage(Browser browser)
{
#region SetContentAsync

await using var page = await browser.NewPageAsync();
await page.SetContentAsync("<div>My Receipt</div>");
var result = await page.GetContentAsync();

#endregion
}

[Fact(Timeout = TestConstants.DefaultTestTimeout)]
public async Task ShouldWork()
{
Expand Down
3 changes: 2 additions & 1 deletion lib/PuppeteerSharp.Tests/PuppeteerSharp.Tests.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
<IsTestProject>true</IsTestProject>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="MarkdownSnippets.MsBuild" Version="23.1.1" PrivateAssets="All" />
<PackageReference Include="Microsoft.CSharp" Version="4.5.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.9.0" />
<PackageReference Include="Mono.Posix.NETStandard" Version="1.0.0" />
Expand All @@ -17,7 +18,7 @@
<ItemGroup Condition="'$(TargetFramework)'=='net471'">
<PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies" Version="1.0.0" PrivateAssets="All" />
</ItemGroup>
<Import Project="../Common/SignAssembly.props" />
<Import Project="../Common/SignAssembly.props" />
<ItemGroup>
<Folder Include="Issues\" />
<Folder Include="Attributes\" />
Expand Down
3 changes: 3 additions & 0 deletions mdsnippets.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"Convention": "InPlaceOverwrite"
}
2 changes: 1 addition & 1 deletion samples/searching/README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Scraping search results from a website

This example searches developers.google.com/web for articles tagged
"Headless Chrome" and scrape results from the results page.
"Headless Chrome" and scrape results from the results page.

0 comments on commit 54699e3

Please sign in to comment.