Ошибка Selenium: отсутствует 1 обязательный позиционный аргумент: 'url' - PullRequest
0 голосов
/ 25 января 2019

Я экспериментирую с Selenium (3.141.0), используя Python 3.7 и chromedriver (2.45.615291), и получаю следующую ошибку.

TypeError: get() missing 1 required positional argument: 'url'.

Основной код:

from session import browser
from authentication import consolelogin as cl
from selenium.webdriver.firefox.options import Options
from selenium import webdriver

#select driver
driver = webdriver.Chrome

#define options for session
options = Options()
options.set_headless(False)
options.set_capability("pageLoadStrategy","none")
options.binary_location = "file_location" 

#create a session object
session = browser.session(driver=driver,options=options)
session.launch()

#login to google
Google = cl.GoogleLogin("https://accounts.google.com","username"
,"password",session.driver)
Google.UserLogin()

, который создает сеанс браузера, используя следующий код:

class session():
    def __init__(self,driver,options):
        self.__name = "BrowserSession"
        self.driver = driver
        self.options = options        

    def launch(self):
        driver = self.driver(options=self.options)
        return driver

Который затем использует сеанс для попытки входа в систему:

class site():
    def __init__(self,url,username,password):
        self.url=url
        self.username=username
        self.password=password

class GoogleLogin(site):
    def __init__(self,url,username,password,session):
        site.__init__(self,url,username,password)
        self.session = session

    def UserLogin(self):
        now = self.session.get(self.url) #go to site
        #perform the login

Кто-нибудь может увидеть, что я делаю не так?

1 Ответ

0 голосов
/ 25 января 2019

Вам необходимо сохранить инициализированный драйвер, возвращенный из session.launch(), и передать его в GoogleLogin вместо session.driver, который все еще не инициализирован:

driver = session.launch()

Google = GoogleLogin("https://accounts.google.com", "username", "password", driver)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...