Ошибка типа: __init __ () принимает 2 позиционных аргумента, но 3 были заданы в Selenium POP - PullRequest
0 голосов
/ 18 апреля 2020

Я использую Selenium и Python, и я не знаю, что не так с моим кодом.

Я пытаюсь использовать шаблон объекта страницы. И в моем классе о странице у меня есть этот метод:

def more_than_100(self):
    locator = Locators(self.driver)
    number_of_items = WebDriverWait(self.driver, 10).until(
        EC.element_to_be_clickable((By.XPATH, locator.return_product_locator())))
    number_of_items.clear()
    number_of_items.send_keys('101')
    WebDriverWait(self.driver, 10).until(
        EC.element_to_be_clickable((By.XPATH, "//h4[text()='Okulary']/following::button[1]"))).click()

и в файле Locators у меня есть 2 метода:

def __init__(self, driver):
    self.driver = driver

def return_product_list_input(self):
    titles = WebDriverWait(self.driver, 5).until(EC.visibility_of_all_elements_located(By.XPATH, "//h4[text()]"))
    for title in titles:
        products.append(title.text)
    return products

def return_product_locator(self):
    locator_product_list_input = "//h4[text()='" + self.return_product_list_input().products[0] + "']/following::input[1]"
    return locator_product_list_input

что я хочу сделать, это получить все названия продуктов, положить их в список, а затем использовать эти имена для генерации xpath. (в будущем я хочу добавить немного случайности, чтобы подобрать случайный продукт), но сейчас у меня есть

File "...\Locators.py", line 12, in return_product_list_input
    titles = WebDriverWait(self.driver, 5).until(EC.visibility_of_all_elements_located(By.XPATH, "//h4[text()]"))
    TypeError: __init__() takes 2 positional arguments but 3 were given

Что мне делать с этой ошибкой? Возможно, проблема в xpath для H4, но я не знаю, как правильно написать.

1 Ответ

0 голосов
/ 18 апреля 2020

Измените строку ниже.

titles = WebDriverWait(self.driver, 5).until(EC.visibility_of_all_elements_located(By.XPATH, "//h4[text()]"))

, как показано ниже, чтобы устранить ошибку. (вы пропустили еще один довод до К)

titles = WebDriverWait(self.driver, 5).until(EC.visibility_of_all_elements_located((By.XPATH, "//h4[text()]")))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...