Skip to content

Commit b36fc5f

Browse files
authored
Merge pull request GermanAizek#29 from No-47/master
[*] fix bugs about issues GermanAizek#27 and GermanAizek#28
2 parents 6a46978 + 1bd9f77 commit b36fc5f

File tree

9 files changed

+1492
-1454
lines changed

9 files changed

+1492
-1454
lines changed

.gitignore

+6
Original file line numberDiff line numberDiff line change
@@ -31,5 +31,11 @@
3131
*.out
3232
*.app
3333

34+
# backup file
35+
*.bak
36+
3437
# Folders
3538
/build
39+
/v17
40+
/.vs
41+
/cmake_build

src/include/webdriverxx/browsers/chrome.h

+108-108
Original file line numberDiff line numberDiff line change
@@ -5,123 +5,123 @@
55
#include <unordered_set>
66

77
namespace webdriverxx {
8-
namespace chrome {
9-
namespace device {
10-
std::unordered_set<std::string> deviceList {
11-
"BlackBerry Z30",
12-
"Blackberry PlayBook",
13-
"Galaxy Note 3",
14-
"Galaxy Note II",
15-
"Galaxy S III",
16-
"Kindle Fire HDX",
17-
"LG Optimus L70",
18-
"Laptop with HiDPI screen",
19-
"Laptop with MDPI screen",
20-
"Laptop with touch",
21-
"Microsoft Lumia 550",
22-
"Microsoft Lumia 950",
23-
"Moto G4",
24-
"Nexus 10",
25-
"Nexus 4",
26-
"Nexus 5",
27-
"Nexus 5X",
28-
"Nexus 6",
29-
"Nexus 6P",
30-
"Nexus 7",
31-
"Nokia Lumia 520",
32-
"Nokia N9",
33-
"iPad Mini",
34-
"iPhone 4",
35-
"JioPhone 2",
36-
"Galaxy S5",
37-
"Pixel 2",
38-
"Pixel 2 XL",
39-
"iPhone 5/SE",
40-
"iPhone 6/7/8",
41-
"iPhone 6/7/8 Plus",
42-
"iPhone X",
43-
"iPad",
44-
"iPad Pro",
45-
"Surface Duo",
46-
"Galaxy Fold"
47-
};
8+
namespace chrome {
9+
namespace device {
10+
std::unordered_set<std::string> deviceList{
11+
"BlackBerry Z30",
12+
"Blackberry PlayBook",
13+
"Galaxy Note 3",
14+
"Galaxy Note II",
15+
"Galaxy S III",
16+
"Kindle Fire HDX",
17+
"LG Optimus L70",
18+
"Laptop with HiDPI screen",
19+
"Laptop with MDPI screen",
20+
"Laptop with touch",
21+
"Microsoft Lumia 550",
22+
"Microsoft Lumia 950",
23+
"Moto G4",
24+
"Nexus 10",
25+
"Nexus 4",
26+
"Nexus 5",
27+
"Nexus 5X",
28+
"Nexus 6",
29+
"Nexus 6P",
30+
"Nexus 7",
31+
"Nokia Lumia 520",
32+
"Nokia N9",
33+
"iPad Mini",
34+
"iPhone 4",
35+
"JioPhone 2",
36+
"Galaxy S5",
37+
"Pixel 2",
38+
"Pixel 2 XL",
39+
"iPhone 5/SE",
40+
"iPhone 6/7/8",
41+
"iPhone 6/7/8 Plus",
42+
"iPhone X",
43+
"iPad",
44+
"iPad Pro",
45+
"Surface Duo",
46+
"Galaxy Fold"
47+
};
4848

49-
std::string Get(const std::string& name) {
50-
auto pos = deviceList.find(name);
51-
if (pos != deviceList.end())
52-
return *pos;
53-
else
54-
return std::string();
55-
}
56-
57-
struct deviceMetrics : JsonObject {
58-
WEBDRIVERXX_PROPERTIES_BEGIN(deviceMetrics)
59-
WEBDRIVERXX_PROPERTY(width, "width", int)
60-
WEBDRIVERXX_PROPERTY(height, "height", int)
61-
WEBDRIVERXX_PROPERTY(pixelRatio, "pixelRatio", float)
62-
WEBDRIVERXX_PROPERTY(touch, "touch", bool)
63-
WEBDRIVERXX_PROPERTIES_END()
64-
};
65-
}
49+
std::string Get(const std::string& name) {
50+
auto pos = deviceList.find(name);
51+
if (pos != deviceList.end())
52+
return *pos;
53+
else
54+
return std::string();
55+
}
6656

67-
struct MobileEmulation : JsonObject {
68-
WEBDRIVERXX_PROPERTIES_BEGIN(MobileEmulation)
69-
WEBDRIVERXX_PROPERTY(deviceName, "deviceName", std::string)
70-
WEBDRIVERXX_PROPERTY(userAgent, "userAgent", std::string)
71-
WEBDRIVERXX_PROPERTY(deviceMetrics, "deviceMetrics", device::deviceMetrics)
72-
WEBDRIVERXX_PROPERTIES_END()
73-
};
57+
struct deviceMetrics : JsonObject {
58+
WEBDRIVERXX_PROPERTIES_BEGIN(deviceMetrics)
59+
WEBDRIVERXX_PROPERTY(width, "width", int)
60+
WEBDRIVERXX_PROPERTY(height, "height", int)
61+
WEBDRIVERXX_PROPERTY(pixelRatio, "pixelRatio", float)
62+
WEBDRIVERXX_PROPERTY(touch, "touch", bool)
63+
WEBDRIVERXX_PROPERTIES_END()
64+
};
65+
}
7466

75-
struct PerfLoggingPrefs : JsonObject {
76-
WEBDRIVERXX_PROPERTIES_BEGIN(PerfLoggingPrefs)
77-
WEBDRIVERXX_PROPERTY(EnableNetwork, "enableNetwork", bool)
78-
WEBDRIVERXX_PROPERTY(EnablePage, "enablePage", bool)
79-
WEBDRIVERXX_PROPERTY(EnableTimeline, "enableTimeline", bool)
80-
WEBDRIVERXX_PROPERTY(TraceCategories, "traceCategories", std::string)
81-
WEBDRIVERXX_PROPERTY(BufferUsageReportingInterval, "bufferUsageReportingInterval", int)
82-
WEBDRIVERXX_PROPERTIES_END()
83-
};
67+
struct MobileEmulation : JsonObject {
68+
WEBDRIVERXX_PROPERTIES_BEGIN(MobileEmulation)
69+
WEBDRIVERXX_PROPERTY(deviceName, "deviceName", std::string)
70+
WEBDRIVERXX_PROPERTY(userAgent, "userAgent", std::string)
71+
WEBDRIVERXX_PROPERTY(deviceMetrics, "deviceMetrics", device::deviceMetrics)
72+
WEBDRIVERXX_PROPERTIES_END()
73+
};
8474

85-
} // namespace chrome
75+
struct PerfLoggingPrefs : JsonObject {
76+
WEBDRIVERXX_PROPERTIES_BEGIN(PerfLoggingPrefs)
77+
WEBDRIVERXX_PROPERTY(EnableNetwork, "enableNetwork", bool)
78+
WEBDRIVERXX_PROPERTY(EnablePage, "enablePage", bool)
79+
WEBDRIVERXX_PROPERTY(EnableTimeline, "enableTimeline", bool)
80+
WEBDRIVERXX_PROPERTY(TraceCategories, "traceCategories", std::string)
81+
WEBDRIVERXX_PROPERTY(BufferUsageReportingInterval, "bufferUsageReportingInterval", int)
82+
WEBDRIVERXX_PROPERTIES_END()
83+
};
8684

87-
struct ChromeOptions : JsonObject {
88-
WEBDRIVERXX_PROPERTIES_BEGIN(ChromeOptions)
89-
WEBDRIVERXX_PROPERTY(Args, "args", std::vector<std::string>)
90-
WEBDRIVERXX_PROPERTY(Binary, "binary", std::string)
91-
// Each extension is a base64-encoded .crx file
92-
WEBDRIVERXX_PROPERTY(Extensions, "extensions", std::vector<std::string>)
93-
WEBDRIVERXX_PROPERTY(LocalState, "localState", JsonObject)
94-
WEBDRIVERXX_PROPERTY(Prefs, "prefs", JsonObject)
95-
WEBDRIVERXX_PROPERTY(Detach, "detach", bool)
96-
WEBDRIVERXX_PROPERTY(DebuggerAddress, "debuggerAddress", std::string)
97-
WEBDRIVERXX_PROPERTY(ExcludeSwitches, "excludeSwitches", std::vector<std::string>)
98-
WEBDRIVERXX_PROPERTY(MinidumpPath, "minidumpPath", std::string)
99-
WEBDRIVERXX_PROPERTY(MobileEmulation, "mobileEmulation", chrome::MobileEmulation)
100-
WEBDRIVERXX_PROPERTY(WindowTypes, "windowTypes", std::vector<std::string>)
101-
WEBDRIVERXX_PROPERTY(SpecCompliantProtocol, "w3c", bool)
85+
} // namespace chrome
10286

103-
// Read-only capabilities
104-
WEBDRIVERXX_PROPERTY_RONLY(ChromeDriverVersion, "chrome.chromedriverVersion", std::string)
105-
WEBDRIVERXX_PROPERTY_RONLY(UserDataDir, "userDataDir", std::string)
87+
struct ChromeOptions : JsonObject {
88+
WEBDRIVERXX_PROPERTIES_BEGIN(ChromeOptions)
89+
WEBDRIVERXX_PROPERTY(Args, "args", std::vector<std::string>)
90+
WEBDRIVERXX_PROPERTY(Binary, "binary", std::string)
91+
// Each extension is a base64-encoded .crx file
92+
WEBDRIVERXX_PROPERTY(Extensions, "extensions", std::vector<std::string>)
93+
WEBDRIVERXX_PROPERTY(LocalState, "localState", JsonObject)
94+
WEBDRIVERXX_PROPERTY(Prefs, "prefs", JsonObject)
95+
WEBDRIVERXX_PROPERTY(Detach, "detach", bool)
96+
WEBDRIVERXX_PROPERTY(DebuggerAddress, "debuggerAddress", std::string)
97+
WEBDRIVERXX_PROPERTY(ExcludeSwitches, "excludeSwitches", std::vector<std::string>)
98+
WEBDRIVERXX_PROPERTY(MinidumpPath, "minidumpPath", std::string)
99+
WEBDRIVERXX_PROPERTY(MobileEmulation, "mobileEmulation", chrome::MobileEmulation)
100+
WEBDRIVERXX_PROPERTY(WindowTypes, "windowTypes", std::vector<std::string>)
101+
WEBDRIVERXX_PROPERTY(SpecCompliantProtocol, "w3c", bool)
106102

107-
WEBDRIVERXX_PROPERTY(LoggingPrefs, "loggingPrefs", LoggingPrefs)
108-
WEBDRIVERXX_PROPERTIES_END()
109-
};
103+
// Read-only capabilities
104+
WEBDRIVERXX_PROPERTY_RONLY(ChromeDriverVersion, "chrome.chromedriverVersion", std::string)
105+
WEBDRIVERXX_PROPERTY_RONLY(UserDataDir, "userDataDir", std::string)
110106

111-
struct Chrome : Capabilities { // copyable
112-
Chrome(const Capabilities& defaults = Capabilities())
113-
: Capabilities(defaults) {
114-
SetBrowserName(browser::Chrome);
115-
SetVersion(defaults.GetVersion()); // 加上这句就可以,BrowserName不能为空
116-
SetPlatform(platform::Any);
117-
}
107+
WEBDRIVERXX_PROPERTY(LoggingPrefs, "loggingPrefs", LoggingPrefs)
108+
WEBDRIVERXX_PROPERTIES_END()
109+
};
118110

119-
// See https://sites.google.com/a/chromium.org/chromedriver/capabilities for details
120-
WEBDRIVERXX_PROPERTIES_BEGIN(Chrome)
121-
WEBDRIVERXX_PROPERTY(ChromeOptions, "goog:chromeOptions", ChromeOptions)
122-
WEBDRIVERXX_PROPERTY(PerfLoggingPrefs, "goog:perfLoggingPrefs", chrome::PerfLoggingPrefs)
123-
WEBDRIVERXX_PROPERTIES_END()
124-
};
111+
struct Chrome : Capabilities { // copyable
112+
Chrome(const Capabilities& defaults = Capabilities())
113+
: Capabilities(defaults) {
114+
SetBrowserName(browser::Chrome);
115+
SetVersion(defaults.GetVersion()); // 加上这句就可以,BrowserName不能为空
116+
SetPlatform(platform::Any);
117+
}
118+
119+
// See https://sites.google.com/a/chromium.org/chromedriver/capabilities for details
120+
WEBDRIVERXX_PROPERTIES_BEGIN(Chrome)
121+
WEBDRIVERXX_PROPERTY(ChromeOptions, "goog:chromeOptions", ChromeOptions)
122+
WEBDRIVERXX_PROPERTY(PerfLoggingPrefs, "goog:perfLoggingPrefs", chrome::PerfLoggingPrefs)
123+
WEBDRIVERXX_PROPERTIES_END()
124+
};
125125

126126
} // namespace webdriverxx
127127

0 commit comments

Comments
 (0)