Skip to content

Commit dbc8188

Browse files
authored
Include UrlFragment to Frame Url (#1853)
1 parent 8c6cd6b commit dbc8188

File tree

6 files changed

+23
-3
lines changed

6 files changed

+23
-3
lines changed
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<frameset>
2+
<frameset>
3+
<frame src='./frame.html'></frame>
4+
<frame src='about:blank'></frame>
5+
</frameset>
6+
<frame src='/empty.html'></frame>
7+
<frame></frame>
8+
</frameset>
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
<iframe src='./frame.html?param=value#fragment'></iframe>

lib/PuppeteerSharp.Tests/FrameTests/FrameManagementTests.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,15 @@ await Task.WhenAll(
7171
Assert.Equal(TestConstants.EmptyPage + "#foo", Page.Url);
7272
}
7373

74+
[PuppeteerTest("frame.spec.ts", "Frame Management", "should support url fragment")]
75+
[PuppeteerFact]
76+
public async Task ShouldReturnUrlFragmentAsPartOfUrl()
77+
{
78+
await Page.GoToAsync(TestConstants.ServerUrl + "/frames/one-frame-url-fragment.html");
79+
Assert.Equal(2, Page.Frames.Length);
80+
Assert.Equal(TestConstants.ServerUrl + "/frames/frame.html?param=value#fragment", Page.FirstChildFrame().Url);
81+
}
82+
7483
[PuppeteerTest("frame.spec.ts", "Frame Management", "should persist mainFrame on cross-process navigation")]
7584
[PuppeteerFact]
7685
public async Task ShouldPersistMainFrameOnCrossProcessNavigation()

lib/PuppeteerSharp.Tests/RequestInterceptionTests/SetRequestInterceptionTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -423,7 +423,7 @@ public async Task ShouldWorkWithEqualRequests()
423423
{
424424
await Page.GoToAsync(TestConstants.EmptyPage);
425425
var responseCount = 1;
426-
Server.SetRoute("/zzz", context => context.Response.WriteAsync((responseCount++) * 11 + string.Empty));
426+
Server.SetRoute("/zzz", context => context.Response.WriteAsync(((responseCount++) * 11) + string.Empty));
427427
await Page.SetRequestInterceptionAsync(true);
428428

429429
var spinner = false;

lib/PuppeteerSharp/Frame.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -587,8 +587,8 @@ internal void OnLifecycleEvent(string loaderId, string name)
587587
internal void Navigated(FramePayload framePayload)
588588
{
589589
Name = framePayload.Name ?? string.Empty;
590-
NavigationURL = framePayload.Url;
591-
Url = framePayload.Url;
590+
NavigationURL = framePayload.Url + framePayload.UrlFragment;
591+
Url = framePayload.Url + framePayload.UrlFragment;
592592
}
593593

594594
internal void NavigatedWithinDocument(string url) => Url = url;

lib/PuppeteerSharp/FramePayload.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,7 @@ internal class FramePayload
1111
public string Name { get; set; }
1212

1313
public string Url { get; set; }
14+
15+
public string UrlFragment { get; set; }
1416
}
1517
}

0 commit comments

Comments
 (0)