-
Notifications
You must be signed in to change notification settings - Fork 357
Expand file tree
/
Copy pathready.cordova.js
More file actions
109 lines (92 loc) · 3.66 KB
/
ready.cordova.js
File metadata and controls
109 lines (92 loc) · 3.66 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
import { $, $$, expect, driver, browser } from '@wdio/globals';
import PageBrowser from './page.browser';
class ReadyCordova extends PageBrowser {
constructor() {
super().title = 'Ready to Vote? - WeVote';
}
// Use a getter to return the platform-specific locator
get wevoteLogo() {
const locator = browser.isAndroid
? 'android=new UiSelector().resourceId("HeaderLogoImage")'
: '~HeaderLogoImage'; // Assuming an accessibility ID is used for iOS
return $(locator);
}
get viewUpcomingBallotButton() {
const locator = browser.isAndroid
? 'android=new UiSelector().resourceId("viewUpcomingBallotButton")'
: '(//XCUIElementTypeButton[@name="View Your Ballot"])[1]';
return $(locator);
}
get headerFollowPopularTopics() {
const locator = browser.isAndroid
? 'android=new UiSelector().resourceId("PopularTopicsHeader")'
: '//XCUIElementTypeStaticText[@name="Follow Popular Topics"]';
return $(locator);
}
get ballotButton() {
const locator = browser.isAndroid
? 'android=new UiSelector().resourceId("ballotButton")' // Assumed resourceId
: '-ios class chain:**/XCUIElementTypeButton[`name == "Ballot"`]';
return $(locator);
}
get ballotShareButton() {
const locator = browser.isAndroid
? 'android=new UiSelector().resourceId("shareButtonFooter")'
: '-ios predicate string:name == "Share"';
return $(locator);
}
get ballotAddress() {
const locator = browser.isAndroid
? 'android=new UiSelector().resourceId("ballotTitleBallotAddress")'
: '-ios predicate string:name BEGINSWITH "Ballot for "';
return $(locator);
}
get ballotAddressInput() {
const locator = browser.isAndroid
? 'android=new UiSelector().resourceId("entryBox")'
: '~Address';
return $(locator);
}
get saveBallotAddressButton() {
const locator = browser.isAndroid
? 'android=new UiSelector().resourceId("addressBoxModalSaveButton")'
: '~Save';
return $(locator);
}
get followIssueButtons() {
const locator = browser.isAndroid
? 'android=new UiSelector().resourceIdMatches(".*issueFollowButton-wv02issue.*")'
: '//XCUIElementTypeButton[@name="Follow"]';
return $$(locator);
}
get followFirstIssue() {
const locator = browser.isAndroid
? 'android=new UiSelector().resourceId("issueFollowButton-wv02issue63-pro-choice")'
: '-ios predicate string:name == "Follow" AND visible == 1';
return $(locator);
}
get toggleFollowDropdown() {
const locator = browser.isAndroid
? 'android=new UiSelector().resourceIdMatches("toggleFollowMenuButton-wv02issue.*")'
: '~Toggle Dropdown';
return $(locator);
}
get unfollowIssueButton() {
const locator = browser.isAndroid
? 'android=new UiSelector().resourceIdMatches("issueUnfollowButton-wv02issue.*")'
: '~Unfollow';
return $(locator);
}
get popularTopicsShowMoreButton() {
const locator = browser.isAndroid
? '#toggleContentButton-showMoreReadyPageValuesList'
: '-ios class chain:**/XCUIElementTypeButton[`name == "show more"`][1]';
return $(locator);
}
async updateBallotAddress(ballotadd) {
await this.ballotAddress.click();
await this.ballotAddressInput.setValue(ballotadd);
await this.saveBallotAddressButton.click();
}
}
export default new ReadyCordova();