Python Forum
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Please Help
#1
Exclamation 
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)
Reply
#2
There's a mistake
In this function

 driver = configure_driver(ip)
Reply
#3
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.
Gribouillis likes this post
Reply
#4
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
Reply
#5
In you configure function you have a return statement. Pretty sure when that return is executes, anything below will not execute.
I welcome all feedback.
The only dumb question, is one that doesn't get asked.
My Github
How to post code using bbtags


Reply
#6
Can you process it for me?
Thank you
??
Reply


Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020