Я пытаюсь понять, что я делаю здесь неправильно, я заставляю себя больше использовать классы, но я столкнулся с проблемой.
Я настроил сайт drupal для тестирования Selenium и подумал, что будусделать из него класс, пока у меня есть:
Импортировать класс
from platform_drupal import Drupal
Установить драйвер
def driver_init(using_linux, proxy):
options = Options()
options.headless = False
options.add_argument('start-maximized')
options.add_argument('disable-infobars')
options.add_argument('--disable-extensions')
options.add_argument('--ignore-certificate-errors')
options.add_argument('--ignore-ssl-errors')
if proxy == "0.0.0.0:00":
print("[-] ======= PROXY DISABLED ...")
else:
print("[+] ======= USING PROXY: " + str(proxy) + " ...")
options.add_argument('--proxy-server=%s' % proxy)
if using_linux == True:
return webdriver.Chrome("/usr/bin/chromedriver", chrome_options=options)
else:
return webdriver.Chrome("chromedriver.exe", chrome_options=options)
Зациклить сайт из текстового файла и отправить его в класс
driver = driver_init(False, "")
input_file = open("links\\linksTo[R]Page.txt", "r")
for each_line in input_file:
try:
Drupal.login(driver, each_line.rstrip('\n'))
except Exception as e:
print("REGISTRATION ERROR: ", e)
Содержимое файла класса
from selenium.webdriver.support.ui import Select
class Drupal:
def __init__(self, driver):
self.driver = driver
self.url = url
def login(self, driver, url):
driver.get(url)
driver.find_element_by_id("edit-mail").click()
driver.find_element_by_id("edit-mail").clear()
driver.find_element_by_id("edit-mail").send_keys("EMAIL")
driver.find_element_by_id("edit-field-first-name-und-0-value").click()
driver.find_element_by_id("edit-field-first-name-und-0-value").clear()
driver.find_element_by_id("edit-field-first-name-und-0-value").send_keys("FIRST_NAME")
driver.find_element_by_id("edit-field-last-name-und-0-value").click()
driver.find_element_by_id("edit-field-last-name-und-0-value").clear()
driver.find_element_by_id("edit-field-last-name-und-0-value").send_keys("LAST_NAME")
driver.find_element_by_id("edit-captcha-response").click()
driver.find_element_by_id("edit-captcha-response").clear()
driver.find_element_by_id("edit-captcha-response").send_keys("CAPTCHA")
sleep(3)
driver.find_element_by_id("edit-submit").click()
У меня всегда были проблемы с классами, поэтому я стараюсь выучить как можно больше, приведенный выше код при запуске выдает ошибку:
login() missing 1 required positional argument: 'url'
При просмотре кода яне вижу каких-либо очевидных ошибок (которые я вижу в любом случае), есть ли что-то, что я пропустил?любая помощь приветствуется.