-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgetQuestionsFromLC.js
43 lines (38 loc) · 1.28 KB
/
getQuestionsFromLC.js
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
async function getLCQuestions(pageLC, difficulty, numQues) {
await pageLC.evaluate(function () {
document.querySelectorAll(".relative div>button[type='button'][aria-haspopup='true']")[1].click();
})
await pageLC.waitForSelector(".flex.items-center.h-5", { visible: true });
await pageLC.evaluate(function (difficulty) {
document.querySelectorAll(".flex.items-center.h-5")[difficulty].click();
}, difficulty)
let p = new Promise(function (resolve, reject) {
setTimeout(function () {
resolve();
}, 5000)
})
await p;
return await pageLC.evaluate(function (numQues) {
let ques = {};
let allTrs = document.querySelectorAll("tbody tr");
if (allTrs.length >= Number(numQues)+2)
{
for (let i = 2; i < Number(numQues)+2; i++) {
let allATags = allTrs[i].querySelectorAll("td a");
let problemName = allATags[0].innerText;
let problemLink = "https://leetcode.com" + allATags[0].getAttribute("href");
ques[problemName] = problemLink;
}
}
else {
for (let i = 2; i < allTrs.length; i++) {
let allATags = allTrs[i].querySelectorAll("td a");
let problemName = allATags[0].innerText;
let problemLink = "https://leetcode.com" + allATags[0].getAttribute("href");
ques[problemName] = problemLink;
}
}
return ques;
}, numQues)
}
module.exports={"getQues":getLCQuestions}