* args распаковывает локаторы в форме кортежа. Но в моем случае я привел только два аргумента, но он принимает три аргумента. Нужна помощь, чтобы понять.
Я новичок в селене с python и поигрался с кодом из github,
но получаю ошибку.
TypeError: find_element_by_xpath()
принимает 2 позиционных аргумента, но 3 было дано
locator.py
from selenium.webdriver.common.by import By
class elements(object):
Customer = (By.XPATH, "//button[contains(text(),'Customer')]")
base.py
from selenium import webdriver
from selenium.webdriver.common.by import By
class Page(object):
def __init__(self,driver,url=None):
self.url = url
self.driver = driver
def find_element_with_click(self,*locator):
self.driver.find_element_by_xpath(*locator).click()
pages.py
from selenium import webdriver
from base import Page
from locator import *
class CustomerCreation(Page):
def __init__(self, driver):
self.locator = elements
super().__init__(driver)
def create_customer(self):
self.driver.find_element_with_click(*self.locator.Customer)
testPages.py
import unittest
from selenium import webdriver
from pages import *
from locators import *
from selenium.webdriver.common.by import By
class TestPages(unittest.TestCase):
@classmethod
def setUpClass(cls):
cls.driver = webdriver.Chrome('C:\ChromeDriver\chromedriver')
cls.driver.get("#server")
def test_tes_cust(self):
page = CustomerCreation(self.driver)
res_page = page.create_customer() #Getting issue at this stage
@classmethod
def tearDownClass(cls):
cls.driver.close()
if __name__ == "__main__":
suite = unittest.TestLoader().loadTestsFromTestCase(TestPages)
unittest.TextTestRunner(verbosity=2).run(suite)
Журнал ошибок:
test_tes_cust ( main .TestPages) ... ОШИБКА
================================================== ====================
ОШИБКА: test_tes_cust ( main .TestPages)
-------------------------------------------------- --------------------
Traceback (последний вызов был последним):
Файл "testPages.py", строка 28, в test_tes_cust
res_page = page.create_customer ()
Файл "C: \ Users ### \ PycharmProjects \ basics \ pages.py", строка 35, в create_customer
self.find_element_with_click (* self.locator.Customer)
Файл "C: \ Users ### \ PycharmProjects \ basics \ base.py", строка 21, в find_element_with_click
self.driver.find_element_by_xpath (* локатор) .click ()
Ошибка типа: find_element_by_xpath () принимает 2 позиционных аргумента, но 3 было дано