terminal access with improved func's calls

This commit is contained in:
infinity
2023-07-08 23:42:22 +05:30
parent 4aaf456365
commit f38285c2cf
2 changed files with 72 additions and 47 deletions
+69 -45
View File
@@ -7,6 +7,7 @@ import os
import chrome_handler
import helper_funcs
import sys
chrome_handler.start_chrome()
@@ -15,59 +16,82 @@ service = Service(os.getcwd() + "/chromedriver")
chrome_options = webdriver.ChromeOptions()
chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")
# chrome_options.add_argument("--headless")
driver = webdriver.Chrome(service=service, options=chrome_options)
driver.maximize_window()
driver.get("https://chat.openai.com/chat")
helper_fn = helper_funcs.HelperFn(driver)
#if login page is present
login_msg_xpath = "//*[contains(text(), 'Log in with your OpenAI account to continue')]"
login_page = helper_fn.is_element_present(login_msg_xpath)
if login_page:
login_btn_xpath = "//*[@class='btn relative btn-primary']//*[contains(text(), 'Log in')]"
helper_fn.wait_for_element(login_btn_xpath)
login_button = helper_fn.find_element(login_btn_xpath)
login_button.click()
#google login
google_btn_xpath = "//*[@data-provider='google']"
helper_fn.wait_for_element(google_btn_xpath)
google_btn = helper_fn.find_element(google_btn_xpath)
google_btn.click()
#select mail
gmail_xpath = "//*[contains(text(), 'PRIYANSHU PATEL')]"
helper_fn.wait_for_element(gmail_xpath)
gmail = helper_fn.find_element(gmail_xpath)
gmail.click()
time.sleep(3)
text_area_xpath = "//*[@id='prompt-textarea']"
helper_fn.wait_for_element(text_area_xpath)
if helper_fn.is_element_present(text_area_xpath):
text_area = helper_fn.find_element(text_area_xpath)
text_area.send_keys("what is future of nepal?")
#send button
send_btn_xpath = "/html/body/div[1]/div[1]/div[2]/div/main/div[3]/form/div/div/button"
helper_fn.wait_for_element(send_btn_xpath)
send_btn = helper_fn.find_element(send_btn_xpath)
def start_chat_gpt():
#if login page is present
time.sleep(2)
send_btn.click()
login_msg_xpath = "//*[contains(text(), 'Log in with your OpenAI account to continue')]"
login_page = helper_fn.is_element_present(login_msg_xpath)
if login_page:
login_btn_xpath = "//*[@class='btn relative btn-primary']//*[contains(text(), 'Log in')]"
helper_fn.wait_for_element(login_btn_xpath)
login_button = helper_fn.find_element(login_btn_xpath)
login_button.click()
time.sleep(2)
#google login
google_btn_xpath = "//*[@data-provider='google']"
helper_fn.wait_for_element(google_btn_xpath)
google_btn = helper_fn.find_element(google_btn_xpath)
google_btn.click()
time.sleep(5)
#waiting for response
response_xpath = "//*[@class='markdown prose w-full break-words dark:prose-invert light']"
regenrate_xpath = "//*[contains(text(), 'Regenerate response')]"
helper_fn.wait_for_element(regenrate_xpath,120)
if helper_fn.is_element_present(response_xpath):
response = helper_fn.find_elements(response_xpath)[-1]
print(response.text)
time.sleep(2)
#select mail
gmail_xpath = "//*[contains(text(), 'PRIYANSHU PATEL')]"
helper_fn.wait_for_element(gmail_xpath)
gmail = helper_fn.find_element(gmail_xpath)
gmail.click()
else:
print("Already logged in")
def make_gpt_request(text):
time.sleep(3)
text_area_xpath = "//*[@id='prompt-textarea']"
helper_fn.wait_for_element(text_area_xpath)
if helper_fn.is_element_present(text_area_xpath):
text_area = helper_fn.find_element(text_area_xpath)
text_area.send_keys(text)
#send button
send_btn_xpath = "/html/body/div[1]/div[1]/div[2]/div/main/div[3]/form/div/div/button"
helper_fn.wait_for_element(send_btn_xpath)
send_btn = helper_fn.find_element(send_btn_xpath)
time.sleep(2)
send_btn.click()
time.sleep(5)
#waiting for response
response_xpath = "//*[@class='markdown prose w-full break-words dark:prose-invert light']"
regenrate_xpath = "//*[contains(text(), 'Regenerate response')]"
helper_fn.wait_for_element(regenrate_xpath,120)
if helper_fn.is_element_present(response_xpath):
response = helper_fn.find_elements(response_xpath)[-1]
# print(response.text)
return response.text # will return all the texual information under that perticular xpath
time.sleep(5)
chrome_handler.kill_chrome()
def stop_chat_gpt():
driver.close()
chrome_handler.kill_chrome()
if __name__ == "__main__":
start_chat_gpt()
while True:
req = input("Enter text: ")
if req == "i quit!":
break
resp = make_gpt_request(req)
print(resp)
stop_chat_gpt()
+3 -2
View File
@@ -6,9 +6,10 @@ from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
import logging
logging.basicConfig(format='%(asctime)s - %(levelname)s: %(message)s', datefmt='%m/%d/%Y %I:%M:%S %p',
level=logging.INFO)
logging.basicConfig(format='%(asctime)s - %(levelname)s: %(message)s', datefmt='%m/%d/%Y %I:%M:%S %p')
# logging.basicConfig(format='%(asctime)s - %(levelname)s: %(message)s', datefmt='%m/%d/%Y %I:%M:%S %p',
# level=logging.INFO) # For logging to console, Debugging purposes.
class HelperFn:
def __init__(self, driver):