Skip to content

Commit

Permalink
πŸ’
Browse files Browse the repository at this point in the history
  • Loading branch information
hlaueriksson committed Jan 6, 2025
1 parent 1eca84c commit 6bd4f25
Show file tree
Hide file tree
Showing 13 changed files with 57 additions and 51 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.12.0" />
<PackageReference Include="MSTest.TestAdapter" Version="3.7.0" />
<PackageReference Include="MSTest.TestFramework" Version="3.7.0" />
<PackageReference Include="PuppeteerSharp.Contrib.Should" Version="6.0.0" />
<PackageReference Include="PuppeteerSharp.Contrib.Should" Version="7.0.0" />
</ItemGroup>

</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ public async Task Should_be_first_search_result_on_GitHub()

await page.GoToAsync("https://github.com/");
var heading = await page.QuerySelectorAsync("main h1");
await heading.ShouldHaveContentAsync("Let’s build");
await heading.ShouldHaveContentAsync("Build and ship software on a single, collaborative platform");

var input = await page.QuerySelectorAsync("#query-builder-test");
if (await input.IsHiddenAsync())
Expand All @@ -55,9 +55,9 @@ public async Task Should_be_first_search_result_on_GitHub()
await text.ShouldHaveContentAsync("Headless Chrome .NET API");
var link = await repository.QuerySelectorAsync("a");
await link.ClickAsync();
await page.WaitForSelectorAsync("article > h1");
await page.WaitForSelectorAsync("article h1");

heading = await page.QuerySelectorAsync("article > h1");
heading = await page.QuerySelectorAsync("article h1");
await heading.ShouldHaveContentAsync("Puppeteer Sharp");
Assert.AreEqual("https://github.com/hardkoded/puppeteer-sharp", page.Url);
}
Expand All @@ -72,9 +72,9 @@ public async Task Should_have_successful_build_status()
await page.ClickAsync("#actions-tab");
await page.WaitForSelectorAsync("#partial-actions-workflow-runs");

var status = await page.QuerySelectorAsync(".checks-list-item-icon svg");
var status = await page.QuerySelectorAsync(".d-table svg");
var label = await status.GetAttributeAsync("aria-label");
Assert.AreEqual("completed successfully", label);
Assert.IsTrue(label.Contains("completed successfully"));
}

[TestMethod]
Expand All @@ -92,7 +92,7 @@ public async Task Should_be_up_to_date_with_the_Puppeteer_version()

async Task<string> GetLatestReleaseVersion()
{
var latest = await page.QuerySelectorWithContentAsync("a[href*='releases'] span", @"v?\d+\.\d\.\d");
var latest = await page.QuerySelectorWithContentAsync("a[href*='releases'] span", @"v\d+\.\d+\.\d+");
var version = await latest.TextContentAsync();
return version.Substring(version.LastIndexOf('v') + 1);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
<PackageReference Include="Machine.Specifications.Runner.VisualStudio" Version="2.10.2" />
<PackageReference Include="Machine.Specifications.Should" Version="1.0.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.12.0" />
<PackageReference Include="PuppeteerSharp.Contrib.Should" Version="6.0.0" />
<PackageReference Include="PuppeteerSharp.Contrib.Should" Version="7.0.0" />
<!-- Vulnerabilities -->
<PackageReference Include="System.Net.Http" Version="4.3.4" />
<PackageReference Include="System.Text.RegularExpressions" Version="4.3.1" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ class When_searching_for_the_repo_on_GitHub

await page.GoToAsync("https://github.com/");
var heading = await page.QuerySelectorAsync("main h1");
await heading.ShouldHaveContentAsync("Let’s build");
await heading.ShouldHaveContentAsync("Build and ship software on a single, collaborative platform");

var input = await page.QuerySelectorAsync("#query-builder-test");
if (await input.IsHiddenAsync())
Expand All @@ -51,9 +51,9 @@ class When_searching_for_the_repo_on_GitHub
await text.ShouldHaveContentAsync("Headless Chrome .NET API");
var link = await repository.QuerySelectorAsync("a");
await link.ClickAsync();
await page.WaitForSelectorAsync("article > h1");
await page.WaitForSelectorAsync("article h1");

heading = await page.QuerySelectorAsync("article > h1");
heading = await page.QuerySelectorAsync("article h1");
await heading.ShouldHaveContentAsync("Puppeteer Sharp");
page.Url.ShouldEqual("https://github.com/hardkoded/puppeteer-sharp");
};
Expand All @@ -70,9 +70,9 @@ class When_viewing_the_repo_on_GitHub
await page.ClickAsync("#actions-tab");
await page.WaitForSelectorAsync("#partial-actions-workflow-runs");

var status = await page.QuerySelectorAsync(".checks-list-item-icon svg");
var status = await page.QuerySelectorAsync(".d-table svg");
var label = await status.GetAttributeAsync("aria-label");
label.ShouldEqual("completed successfully");
label.ShouldContain("completed successfully");
};

It should_be_up_to_date_with_the_Puppeteer_version = async () =>
Expand All @@ -89,7 +89,7 @@ class When_viewing_the_repo_on_GitHub

async Task<string> GetLatestReleaseVersion()
{
var latest = await page.QuerySelectorWithContentAsync("a[href*='releases'] span", @"v?\d+\.\d\.\d");
var latest = await page.QuerySelectorWithContentAsync("a[href*='releases'] span", @"v\d+\.\d+\.\d+");
var version = await latest.TextContentAsync();
return version.Substring(version.LastIndexOf('v') + 1);
}
Expand Down
22 changes: 14 additions & 8 deletions samples/PuppeteerSharp.Contrib.Sample.NUnit/Examples.cs
Original file line number Diff line number Diff line change
Expand Up @@ -94,20 +94,22 @@ public async Task wait()

var tasks = new Task[]
{
/*
page.WaitForDevicePromptAsync(new() { Timeout = timeout }),
*/
page.WaitForExpressionAsync("1 + 1 === 2", new() { Timeout = timeout }),
/*
page.WaitForFileChooserAsync(new() { Timeout = timeout }),
*/
page.WaitForFrameAsync("https://github.com/hardkoded/puppeteer-sharp", new() { Timeout = timeout }),
/*
page.WaitForFunctionAsync("() => window.location.href === 'https://github.com/hardkoded/puppeteer-sharp'", new WaitForFunctionOptions { Timeout = timeout }),
page.WaitForNavigationAsync(new() { Timeout = timeout }),
/*
page.WaitForNetworkIdleAsync(new() { Timeout = timeout }),
*/
page.WaitForRequestAsync("https://github.com/hardkoded/puppeteer-sharp", new() { Timeout = timeout }),
page.WaitForResponseAsync("https://github.com/hardkoded/puppeteer-sharp", new() { Timeout = timeout }),
page.WaitForSelectorAsync("#readme", new() { Timeout = timeout }),
page.WaitForTimeoutAsync(timeout),
page.WaitForSelectorAsync("article", new() { Timeout = timeout }),
//page.WaitForXPathAsync(), // Obsolete
};
await page.GoToAsync("https://github.com/hardkoded/puppeteer-sharp");
Expand All @@ -118,11 +120,13 @@ public async Task wait()

tasks =
[
/*
frame.WaitForDevicePromptAsync(new() { Timeout = timeout }),
*/
frame.WaitForExpressionAsync("1 + 1 === 2", new() { Timeout = timeout }),
frame.WaitForFunctionAsync("() => window.location.href === 'https://github.com/hardkoded/puppeteer-sharp'", new WaitForFunctionOptions { Timeout = timeout }),
frame.WaitForNavigationAsync(new() { Timeout = timeout }),
frame.WaitForSelectorAsync("#readme", new() { Timeout = timeout }),
frame.WaitForTimeoutAsync(timeout),
frame.WaitForSelectorAsync("article", new() { Timeout = timeout }),
//frame.WaitForXPathAsync(), // Obsolete
];
await page.GoToAsync("https://github.com/hardkoded/puppeteer-sharp");
Expand Down Expand Up @@ -219,7 +223,7 @@ public async Task query()
var page = await Page();
await page.GoToAsync("https://github.com/hardkoded/puppeteer-sharp");

var element = await page.QuerySelectorAsync("div#readme");
var element = await page.QuerySelectorAsync("article");
var elements = await page.QuerySelectorAllAsync("div");
Assert.That(element, Is.Not.Null);
Assert.That(elements, Is.Not.Empty);
Expand All @@ -235,7 +239,7 @@ public async Task query()
Assert.That(elementsInElement, Is.Not.Empty);

// other
var handle = await page.QuerySelectorAllHandleAsync("div#readme");
var handle = await page.QuerySelectorAllHandleAsync("article");
await page.QueryObjectsAsync(handle);
await element.QuerySelectorAllHandleAsync("h1");
}
Expand Down Expand Up @@ -299,10 +303,12 @@ public async Task is_()

await page.GoToAsync("https://github.com/hardkoded/puppeteer-sharp");
Assert.That(page.IsClosed, Is.False);
Assert.That(page.IsJavaScriptEnabled, Is.True);
Assert.That(page.IsServiceWorkerBypassed, Is.False);
//page.IsDragInterceptionEnabled // Obsolete

var frame = page.MainFrame;
Assert.That(frame.IsOopFrame, Is.False);
Assert.That(frame.Detached, Is.False);

var element = page.QuerySelectorAsync("#include_email");
Assert.That(element.IsCompleted, Is.False);
Expand Down
8 changes: 4 additions & 4 deletions samples/PuppeteerSharp.Contrib.Sample.NUnit/PageObjects.cs
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ public async Task<GitHubRepoPage> GotoAsync(GitHubRepoListItem repo)
{
var task = Page.WaitForNavigationAsync<GitHubRepoPage>();
await (await repo.Link).ClickAsync();
await Page.WaitForSelectorAsync("article > h1");
await Page.WaitForSelectorAsync("article h1");
return await task;
}
}
Expand All @@ -65,7 +65,7 @@ public class GitHubRepoListItem : ElementObject

public class GitHubRepoPage : PageObject
{
[Selector("article > h1")]
[Selector("article h1")]
public virtual Task<IElementHandle> Heading { get; }

[Selector("#actions-tab")]
Expand All @@ -81,7 +81,7 @@ public async Task<GitHubActionsPage> GotoActionsAsync()

public async Task<string> GetLatestReleaseVersionAsync()
{
var latest = await Page.QuerySelectorWithContentAsync("a[href*='releases'] span", @"v?\d+\.\d\.\d");
var latest = await Page.QuerySelectorWithContentAsync("a[href*='releases'] span", @"v\d+\.\d+\.\d+");
var version = await latest.TextContentAsync();
return version.Substring(version.LastIndexOf('v') + 1);
}
Expand All @@ -91,7 +91,7 @@ public class GitHubActionsPage : PageObject
{
public async Task<string> GetLatestWorkflowRunStatusAsync()
{
var status = await Page.QuerySelectorAsync(".checks-list-item-icon svg");
var status = await Page.QuerySelectorAsync(".d-table svg");
return await status.GetAttributeAsync("aria-label");
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.12.0" />
<PackageReference Include="NUnit" Version="4.3.2" />
<PackageReference Include="NUnit3TestAdapter" Version="4.6.0" />
<PackageReference Include="PuppeteerSharp.Contrib.PageObjects" Version="6.0.0" />
<PackageReference Include="PuppeteerSharp.Contrib.Should" Version="6.0.0" />
<PackageReference Include="PuppeteerSharp.Contrib.PageObjects" Version="7.0.0" />
<PackageReference Include="PuppeteerSharp.Contrib.Should" Version="7.0.0" />
</ItemGroup>

</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ public async Task Should_be_first_search_result_on_GitHub()

var startPage = await page.GoToAsync<GitHubStartPage>("https://github.com/");
var heading = await startPage.Heading;
await heading.ShouldHaveContentAsync("Let’s build");
await heading.ShouldHaveContentAsync("Build and ship software on a single, collaborative platform");

var searchPage = await startPage.SearchAsync("Puppeteer Sharp");
var repositories = await searchPage.RepoListItems;
Expand All @@ -59,7 +59,7 @@ public async Task Should_have_successful_build_status()

var actionsPage = await repoPage.GotoActionsAsync();
var status = await actionsPage.GetLatestWorkflowRunStatusAsync();
Assert.That(status, Is.EqualTo("completed successfully"));
Assert.That(status, Does.Contain("completed successfully"));
}

[Test]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ public async Task Should_be_first_search_result_on_GitHub()

await page.GoToAsync("https://github.com/");
var heading = await page.QuerySelectorAsync("main h1");
await heading.ShouldHaveContentAsync("Let’s build");
await heading.ShouldHaveContentAsync("Build and ship software on a single, collaborative platform");

var input = await page.QuerySelectorAsync("#query-builder-test");
if (await input.IsHiddenAsync())
Expand All @@ -54,9 +54,9 @@ public async Task Should_be_first_search_result_on_GitHub()
await text.ShouldHaveContentAsync("Headless Chrome .NET API");
var link = await repository.QuerySelectorAsync("a");
await link.ClickAsync();
await page.WaitForSelectorAsync("article > h1");
await page.WaitForSelectorAsync("article h1");

heading = await page.QuerySelectorAsync("article > h1");
heading = await page.QuerySelectorAsync("article h1");
await heading.ShouldHaveContentAsync("Puppeteer Sharp");
Assert.That(page.Url, Is.EqualTo("https://github.com/hardkoded/puppeteer-sharp"));
}
Expand All @@ -71,9 +71,9 @@ public async Task Should_have_successful_build_status()
await page.ClickAsync("#actions-tab");
await page.WaitForSelectorAsync("#partial-actions-workflow-runs");

var status = await page.QuerySelectorAsync(".checks-list-item-icon svg");
var status = await page.QuerySelectorAsync(".d-table svg");
var label = await status.GetAttributeAsync("aria-label");
Assert.That(label, Is.EqualTo("completed successfully"));
Assert.That(label, Does.Contain("completed successfully"));
}

[Test]
Expand All @@ -91,7 +91,7 @@ public async Task Should_be_up_to_date_with_the_Puppeteer_version()

async Task<string> GetLatestReleaseVersion()
{
var latest = await page.QuerySelectorWithContentAsync("a[href*='releases'] span", @"v?\d+\.\d\.\d");
var latest = await page.QuerySelectorWithContentAsync("a[href*='releases'] span", @"v\d+\.\d+\.\d+");
var version = await latest.TextContentAsync();
return version.Substring(version.LastIndexOf('v') + 1);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="PuppeteerSharp.Contrib.Should" Version="6.0.0" />
<PackageReference Include="PuppeteerSharp.Contrib.Should" Version="7.0.0" />
</ItemGroup>

<ItemGroup>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
namespace PuppeteerSharp.Contrib.Sample.StepDefinitions
{
[Binding]
public class PuppeteerSharpRepoSteps(Browser browser)
public class PuppeteerSharpRepoSteps(IBrowser browser)
{
private IBrowser Browser { get; } = browser;
private IPage Page { get; set; }
Expand All @@ -27,7 +27,7 @@ public async Task GivenIGoToTheGitHubStartPage()
{
await Page.GoToAsync("https://github.com/");
var heading = await Page.QuerySelectorAsync("main h1");
await heading.ShouldHaveContentAsync("Let’s build");
await heading.ShouldHaveContentAsync("Build and ship software on a single, collaborative platform");
}

[When(@"I search for ""(.*)""")]
Expand Down Expand Up @@ -55,9 +55,9 @@ public async Task ThenTheRepoShouldBeTheFirstSearchResult()
await text.ShouldHaveContentAsync("Headless Chrome .NET API");
var link = await repository.QuerySelectorAsync("a");
await link.ClickAsync();
await Page.WaitForSelectorAsync("article > h1");
await Page.WaitForSelectorAsync("article h1");

var heading = await Page.QuerySelectorAsync("article > h1");
var heading = await Page.QuerySelectorAsync("article h1");
await heading.ShouldHaveContentAsync("Puppeteer Sharp");
Page.Url.Should().Be("https://github.com/hardkoded/puppeteer-sharp");
}
Expand All @@ -78,15 +78,15 @@ public async Task WhenICheckTheBuildStatusOnTheMasterBranch()
[Then(@"the build status should be success")]
public async Task ThenTheBuildStatusShouldBeSuccess()
{
var status = await Page.QuerySelectorAsync(".checks-list-item-icon svg");
var status = await Page.QuerySelectorAsync(".d-table svg");
var label = await status.GetAttributeAsync("aria-label");
label.Should().Be("completed successfully");
label.Should().Contain("completed successfully");
}

[Given(@"I check the latest release version")]
public async Task GivenICheckTheLatestReleaseVersion()
{
var latest = await Page.QuerySelectorWithContentAsync("a[href*='releases'] span", @"v?\d+\.\d\.\d");
var latest = await Page.QuerySelectorWithContentAsync("a[href*='releases'] span", @"v\d+\.\d+\.\d+");
var version = await latest.TextContentAsync();
LatestReleaseVersion.Add(Page.Url, version.Substring(version.LastIndexOf('v') + 1));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="PuppeteerSharp.Contrib.Should" Version="6.0.0" />
<PackageReference Include="PuppeteerSharp.Contrib.Should" Version="7.0.0" />
</ItemGroup>

</Project>
Loading

0 comments on commit 6bd4f25

Please sign in to comment.