@@ -3,10 +3,39 @@ import type { Page, Locator } from "@playwright/test";
3
3
export class Footer {
4
4
public readonly banner : Locator ;
5
5
private readonly liElement : Locator ;
6
- public readonly conferenceLink : Locator ;
7
- public readonly aboutLink : Locator ;
8
- public readonly attendingLink : Locator ;
6
+ public readonly projectList : Locator ;
7
+ public readonly communityList : Locator ;
8
+ public readonly resourcesList : Locator ;
9
9
public readonly fundingList : Locator ;
10
+ public readonly downloadLink : Locator ;
11
+ public readonly overviewLink : Locator ;
12
+ public readonly caseStudiesLink : Locator ;
13
+ public readonly pluginsLink : Locator ;
14
+ public readonly visualChangelogsLink : Locator ;
15
+ public readonly getInvolvedLink : Locator ;
16
+ public readonly becomeCertifiedMemberLink : Locator ;
17
+ public readonly qgisFoundationLink : Locator ;
18
+ public readonly projectOrganisationLink : Locator ;
19
+ public readonly localUserGroupsLink : Locator ;
20
+ public readonly membersBlogsList : Locator ;
21
+ public readonly documentationLink : Locator ;
22
+ public readonly installationGuideLink : Locator ;
23
+ public readonly archiveLink : Locator ;
24
+ public readonly roadmapLink : Locator ;
25
+ public readonly reportsLink : Locator ;
26
+ public readonly booksLink : Locator ;
27
+ public readonly supportLink : Locator ;
28
+ public readonly qgisDashboardLink : Locator ;
29
+ public readonly pluginsDashboardLink : Locator ;
30
+ public readonly blogLink : Locator ;
31
+ public readonly donateLink : Locator ;
32
+ public readonly membershipList : Locator ;
33
+ public readonly diversityStatementLink : Locator ;
34
+ public readonly codeOfConductLink : Locator ;
35
+ public readonly environmentalPolicyLink : Locator ;
36
+ public readonly licenseLink : Locator ;
37
+ public readonly visualStyleGuideLink : Locator ;
38
+ public readonly goodiesLink : Locator ;
10
39
public readonly logoImage : Locator ;
11
40
public readonly facebookLink : Locator ;
12
41
public readonly youtubeLink : Locator ;
@@ -17,12 +46,81 @@ export class Footer {
17
46
constructor ( public readonly page : Page ) {
18
47
this . banner = this . page . getByRole ( "contentinfo" ) ;
19
48
this . liElement = this . page . locator ( "li" ) ;
20
- this . conferenceLink = this . liElement
21
- . filter ( { hasText : "Conference" } )
22
- . first ( ) ;
23
- this . aboutLink = this . liElement . filter ( { hasText : "About" } ) ;
24
- this . attendingLink = this . liElement . filter ( { hasText : "Attending" } ) ;
25
-
49
+ this . projectList = this . liElement . filter ( { hasText : "Project" } ) . first ( ) ;
50
+ this . communityList = this . liElement . filter ( { hasText : "Community" } ) ;
51
+ this . resourcesList = this . liElement . filter ( { hasText : "Resources" } ) ;
52
+ this . fundingList = this . liElement . filter ( { hasText : "Funding" } ) ;
53
+ this . downloadLink = this . banner
54
+ . locator ( "div" )
55
+ . filter ( { hasText : "Download" } )
56
+ . nth ( 2 ) ;
57
+ this . overviewLink = this . banner . getByRole ( "link" , { name : "Overview" } ) ;
58
+ this . caseStudiesLink = this . banner . getByRole ( "link" , {
59
+ name : "Case studies" ,
60
+ } ) ;
61
+ this . pluginsLink = this . banner . getByRole ( "link" , { name : "Plugins" , exact : true } ) ;
62
+ this . visualChangelogsLink = this . banner . getByRole ( "link" , {
63
+ name : "Visual Changelogs" ,
64
+ } ) ;
65
+ this . getInvolvedLink = this . banner . getByRole ( "link" , {
66
+ name : "Get involved" ,
67
+ } ) ;
68
+ this . becomeCertifiedMemberLink = this . page . getByRole ( "link" , {
69
+ name : "Certification Programme" ,
70
+ exact : true ,
71
+ } ) . first ( ) ;
72
+ this . qgisFoundationLink = this . banner . getByRole ( "link" , {
73
+ name : "QGIS Foundation" ,
74
+ } ) ;
75
+ this . projectOrganisationLink = this . banner . getByRole ( "link" , {
76
+ name : "Project Organisation" ,
77
+ } ) ;
78
+ this . localUserGroupsLink = this . banner . getByRole ( "link" , {
79
+ name : "Local User Groups" ,
80
+ } ) ;
81
+ this . membersBlogsList = this . liElement . filter ( {
82
+ hasText : "Members Blogs" ,
83
+ } ) ;
84
+ this . documentationLink = this . page . getByRole ( "link" , {
85
+ name : "Documentation" ,
86
+ exact : true ,
87
+ } ) . first ( ) ;
88
+ this . installationGuideLink = this . liElement . filter ( {
89
+ hasText : "Installation guide" ,
90
+ } ) ;
91
+ this . roadmapLink = this . banner . getByRole ( "link" , { name : "Roadmap" } ) ;
92
+ this . reportsLink = this . banner . getByRole ( "link" , { name : "Reports" } ) ;
93
+ this . booksLink = this . banner . getByRole ( "link" , { name : "Books" } ) ;
94
+ this . supportLink = this . banner . getByRole ( "link" , { name : "Support" } ) ;
95
+ this . qgisDashboardLink = this . banner . getByRole ( "link" , {
96
+ name : "QGIS Metrics" ,
97
+ exact : true ,
98
+ } ) ;
99
+ this . pluginsDashboardLink = this . banner . getByRole ( "link" , {
100
+ name : "Plugins Metrics" ,
101
+ exact : true ,
102
+ } ) ;
103
+ this . blogLink = this . banner . getByRole ( "link" , {
104
+ name : "Blog" ,
105
+ exact : true ,
106
+ } ) ;
107
+ this . donateLink = this . banner . getByRole ( "link" , { name : "Donate" } ) ;
108
+ this . membershipList = this . liElement . filter ( { hasText : "Membership" } ) ;
109
+ this . diversityStatementLink = this . page . getByRole ( "link" , {
110
+ name : "Diversity statement" ,
111
+ } ) ;
112
+ this . codeOfConductLink = this . page . getByRole ( "link" , {
113
+ name : "Code of conduct" ,
114
+ } ) ;
115
+ this . environmentalPolicyLink = this . page . getByRole ( "link" , {
116
+ name : "Environmental policy" ,
117
+ } ) ;
118
+ this . licenseLink = this . page . getByRole ( "link" , { name : "License" } ) ;
119
+ this . visualStyleGuideLink = this . page . getByRole ( "link" , {
120
+ name : "Visual Style Guide" ,
121
+ } ) ;
122
+ this . goodiesLink = this . page . getByRole ( "link" , { name : "Goodies" , exact : true } ) ;
123
+ this . archiveLink = this . page . getByRole ( "link" , { name : "Archive" } ) . last ( ) ;
26
124
this . logoImage = this . page . getByRole ( "img" , { name : "Logo" } ) ;
27
125
this . facebookLink = this . page . getByRole ( "link" , { name : "" } ) ;
28
126
this . youtubeLink = this . page . getByRole ( "link" , { name : "" } ) ;
0 commit comments