Please Help - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: Web Scraping & Web Development (https://python-forum.io/forum-13.html) +--- Thread: Please Help (/thread-41313.html) |
Please Help - zohershmer - Dec-19-2023 I need to fix this script Thank you from selenium import webdriver from time import sleep import os from selenium.webdriver.support.ui import Select, WebDriverWait from selenium.webdriver.common.keys import Keys from selenium.webdriver.support import expected_conditions as EC from pynput.keyboard import Key, Controller import traceback keyboard = Controller() def make_appointment(member): #adding the webdriver options so we don't encounter some problems options = webdriver.ChromeOptions() options.add_argument("start-maximized") options.add_argument('disable-infobars') ################################ # HELPER FUNCTIONS DEFINITIONS # ################################ ############################ # MAIN FUNCTION DEFINITION # ############################ def get_input(): IP = [] with open ("ips.txt", 'r') as file_input: for line in file_input: x = (line.strip()) IP.append(x) return IP def configure_driver(ip): options = webdriver.ChromeOptions() next_server = "--proxy-server=" + ip options.add_argument(next_server) #options.add_argument("headless") driver = webdriver.Chrome(chrome_options=options) return driver #reading a text file containing all the info we want to pass to the application, then passing that info filepath = 'C:/Users/rzlt/Desktop/member' + str(member) + '.txt' with open(filepath) as fp: lines = fp.readlines() driver = webdriver.Chrome(chrome_options=options) return driver for ip in i: driver = configure_driver(ip) driver.get('http://egypt.blsspainvisa.com/book_appointment.php') #open webpage try: driver.find_element_by_xpath('//*[@id="IDBodyPanelapp"]/div[1]').click() #clicks the 'X'(close) button if it appears except: print("Exception occured, pop up didn't appear") time.sleep(3) #selecting the 'Cairo' centre option select = Select(driver.find_element_by_id('centre')) time.sleep(2) select.select_by_visible_text('Cairo') #filling phone text field driver.find_element_by_id('phone').send_keys(lines[1]) #getting a spare email address using 'https://temp-mail.org/' webpage and passing it to the text field #after that, retrieving the verification code sent to that address current_window = driver.current_window_handle driver.execute_script("window.open('https://temp-mail.org')") WebDriverWait(driver, 10).until(EC.number_of_windows_to_be(2)) windows_after = driver.window_handles new_window = [x for x in windows_after if x != current_window][0] driver.switch_to_window(new_window) spare_email = driver.find_element_by_id('mail').get_attribute('value') driver.switch_to_window(current_window) driver.find_element_by_id('email').send_keys(spare_email) driver.find_element_by_xpath('//*[@id="em_tr"]/div[2]/abbr/a').click() driver.switch_to_window(new_window) time.sleep(10) driver.find_element_by_xpath('//*[@id="mails"]/tbody/tr/td[3]/a/span').click() time.sleep(2) ver_code = driver.find_element_by_xpath('/html/body/div[2]/div/div/div[2]/div[1]/div[1]/div[3]/div/div/table').text[-4:] driver.switch_to_window(current_window) driver.find_element_by_id('otp').send_keys(ver_code) #pressing the 'continue' button and then the 'agree' button driver.find_element_by_name('save').click() driver.find_element_by_name('agree').click() appointment_made = False while(not appointment_made): try: driver.find_element_by_xpath('//*[@id="app_date"]').click() #this makes the datepicker appear all_appointments = driver.find_elements_by_xpath('//*[@title="Book"]') #print(all_appointments) if len(all_appointments) != 0: all_appointments[0].click() appointment_made = True except: print("Exception occured...") keyboard.press(Key.f5) time.sleep(4) traceback.print_exc() driver.find_element_by_xpath('//*[@id="app_time"]/option[2]').click() #sets the Appointment Time driver.find_element_by_xpath('//*[@id="VisaTypeId"]/option[2]').click() #sets the Visa Type driver.find_element_by_id('first_name').send_keys(lines[2]) #sets the first name driver.find_element_by_id('last_name').send_keys(lines[3]) #sets the last name driver.execute_script("document.getElementById('dateOfBirth').value=" + lines[4]) #sets the Date Of Birth driver.find_element_by_id('passport_no').send_keys(lines[5]) #sets the Passport Number driver.execute_script("document.getElementById('pptIssueDate').value=" + lines[6]) #sets the Passport Issue Date driver.execute_script("document.getElementById('pptExpiryDate').value=" + lines[7]) #sets the Passport Expiry Date driver.find_element_by_id('pptIssuePalace').send_keys(lines[8]) #sets the passport Issue Place except: pass print ("we are beeing redirectedddd -----> ip is blocked") print ("starting with next available IP") time.sleep(100) RE: Please Help - zohershmer - Dec-19-2023 There's a mistake In this function driver = configure_driver(ip) RE: Please Help - ndc85430 - Dec-19-2023 It would help if you actually told us what the problem was. There's a lot of code there and if you want people to be able to run it, you'd be best providing a minimal, yet complete example that demonstrates the problem. RE: Please Help - zohershmer - Dec-19-2023 hello ladies and gentleman i built an automation bot with selenium and webdriver and everything was working fine but after i tried to add a function to make the bot works with proxy list .txt i found a lot of issues could you please showme where is the problem and if u r able to fix and and thnx in advance RE: Please Help - menator01 - Dec-19-2023 In you configure function you have a return statement. Pretty sure when that return is executes, anything below will not execute. RE: Please Help - zohershmer - Dec-21-2023 Can you process it for me? Thank you ?? |