Update commands/universal.py
Browse files- commands/universal.py +36 -33
commands/universal.py
CHANGED
@@ -12,11 +12,7 @@ def searchQuery(user_search, driver, elem, mode=0, score="", isLoggedIn=True):
|
|
12 |
driver.execute_script("arguments[0].click();", anchor)
|
13 |
|
14 |
user_search = user_search.lower()
|
15 |
-
|
16 |
-
WebDriverWait(driver, timeout=5).until(EC.presence_of_element_located((By.XPATH, elem)))
|
17 |
-
except:
|
18 |
-
driver.refresh()
|
19 |
-
WebDriverWait(driver, timeout=20).until(EC.presence_of_element_located((By.XPATH, elem)))
|
20 |
search_bar = driver.find_element(By.XPATH, elem)
|
21 |
|
22 |
try:
|
@@ -31,13 +27,14 @@ def searchQuery(user_search, driver, elem, mode=0, score="", isLoggedIn=True):
|
|
31 |
if not mode:
|
32 |
specific_Query(driver=driver, search_bar=search_bar, user_search=user_search)
|
33 |
else:
|
|
|
34 |
search_bar.send_keys(Keys.ARROW_DOWN)
|
35 |
time.sleep(2)
|
36 |
|
37 |
if mode:
|
38 |
search_bar.send_keys(Keys.ARROW_DOWN)
|
39 |
time.sleep(1.2)
|
40 |
-
|
41 |
time.sleep(0.3)
|
42 |
|
43 |
try:
|
@@ -94,44 +91,50 @@ def continue_Search(driver, link, mode=0):
|
|
94 |
|
95 |
|
96 |
def specific_Query(driver, search_bar, user_search):
|
97 |
-
|
|
|
|
|
|
|
|
|
|
|
98 |
try:
|
99 |
-
for user_word in
|
100 |
time.sleep(1.2)
|
101 |
driver.execute_script('arguments[0].value=arguments[1]', search_bar, user_word)
|
102 |
-
time.sleep(
|
103 |
search_bar.send_keys(Keys.SPACE)
|
104 |
-
time.sleep(2.
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
if checker == len(user_search):
|
118 |
-
tag_pos = n_iter
|
119 |
break
|
120 |
-
else:
|
121 |
-
checker = 0
|
122 |
|
123 |
-
if
|
124 |
-
for i in range(tag_pos+1):
|
125 |
-
time.sleep(0.5)
|
126 |
-
search_bar.send_keys(Keys.ARROW_DOWN)
|
127 |
break
|
128 |
-
|
129 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
130 |
search_bar.send_keys(Keys.ENTER)
|
131 |
|
|
|
132 |
def contains_works(driver, elem):
|
133 |
try:
|
134 |
WebDriverWait(driver, timeout=9).until(EC.presence_of_element_located((By.XPATH, elem)))
|
135 |
return True
|
136 |
except:
|
137 |
-
return False
|
|
|
|
|
|
12 |
driver.execute_script("arguments[0].click();", anchor)
|
13 |
|
14 |
user_search = user_search.lower()
|
15 |
+
WebDriverWait(driver, timeout=15).until(EC.presence_of_element_located((By.XPATH, elem)))
|
|
|
|
|
|
|
|
|
16 |
search_bar = driver.find_element(By.XPATH, elem)
|
17 |
|
18 |
try:
|
|
|
27 |
if not mode:
|
28 |
specific_Query(driver=driver, search_bar=search_bar, user_search=user_search)
|
29 |
else:
|
30 |
+
time.sleep(1)
|
31 |
search_bar.send_keys(Keys.ARROW_DOWN)
|
32 |
time.sleep(2)
|
33 |
|
34 |
if mode:
|
35 |
search_bar.send_keys(Keys.ARROW_DOWN)
|
36 |
time.sleep(1.2)
|
37 |
+
search_bar.send_keys(Keys.ENTER)
|
38 |
time.sleep(0.3)
|
39 |
|
40 |
try:
|
|
|
91 |
|
92 |
|
93 |
def specific_Query(driver, search_bar, user_search):
|
94 |
+
# Replace underscores with spaces and append the full search term
|
95 |
+
user_search_words = user_search.replace("_", " ").split()
|
96 |
+
user_search_words.append(''.join(user_search_words))
|
97 |
+
full_query_found = False
|
98 |
+
query_to_click = None
|
99 |
+
|
100 |
try:
|
101 |
+
for user_word in user_search_words:
|
102 |
time.sleep(1.2)
|
103 |
driver.execute_script('arguments[0].value=arguments[1]', search_bar, user_word)
|
104 |
+
time.sleep(1)
|
105 |
search_bar.send_keys(Keys.SPACE)
|
106 |
+
time.sleep(2.5)
|
107 |
+
|
108 |
+
search_bar_queries = driver.find_elements(By.XPATH, '//*[@class="sc-1974j38-2 kjWkkt"]//a')
|
109 |
+
for query in search_bar_queries:
|
110 |
+
query_text = query.find_element(By.XPATH, './/div').text.lower()
|
111 |
+
if len(query.find_elements(By.XPATH, './/div//div[2]')) > 0:
|
112 |
+
query_text = query.find_element(By.XPATH, './/div//div[2]').text.lower()
|
113 |
+
|
114 |
+
if all(word in query_text for word in user_search_words[:-1]):
|
115 |
+
query_to_click = query
|
116 |
+
full_query_found = True
|
117 |
+
time.sleep(0.3)
|
|
|
|
|
|
|
118 |
break
|
|
|
|
|
119 |
|
120 |
+
if full_query_found:
|
|
|
|
|
|
|
121 |
break
|
122 |
+
|
123 |
+
except Exception as e:
|
124 |
+
pass
|
125 |
+
|
126 |
+
if full_query_found:
|
127 |
+
driver.execute_script("arguments[0].click();", query_to_click)
|
128 |
+
else:
|
129 |
+
# If full query not found, just press Enter
|
130 |
search_bar.send_keys(Keys.ENTER)
|
131 |
|
132 |
+
|
133 |
def contains_works(driver, elem):
|
134 |
try:
|
135 |
WebDriverWait(driver, timeout=9).until(EC.presence_of_element_located((By.XPATH, elem)))
|
136 |
return True
|
137 |
except:
|
138 |
+
return False
|
139 |
+
|
140 |
+
|