Ошибка selenium.common.exceptions.InvalidArgumentException: Message: invalid argument: 'using' must be a string при передаче локаторов
Пишу автотест для формы регистрации. При передаче локаторов через класс, вылетает исключение InvalidArgumentException.
Если локатор вписывать непосредственно в тест (self.driver.find_element(By.XPATH, "//input[@name='firstName']").send_keys(self.valid_first_name) то всё работает, но мне нужно локаторы вынести отдельно(чтобы не писать их в каждом тесте)
сам код:
from selenium import webdriver
from selenium.webdriver.common.by import By
import time
class RTRegistrationLocators:
LOCATOR_RT_REGISTRATION_BUTTON_REGISTER = (By.ID, "kc-register")
LOCATOR_RT_REGISTRATION_FIRSTNAME = (By.XPATH, "//input[@name='firstName']")
LOCATOR_RT_REGISTRATION_LASTNAME = (By.XPATH, "//input[@name='lastName']")
LOCATOR_RT_REGISTRATION_NUMBER_OR_EMAIL = (By.ID, "address")
LOCATOR_RT_REGISTRATION_PASSWORD = (By.ID, "password")
LOCATOR_RT_REGISTRATION_PASSWORD_CONFIRM = (By.ID, "password-confirm")
LOCATOR_RT_REGISTRATION_BUTTON_SUBMIT = (By.XPATH, "//button[@type='submit']")
class TestValidRegistrationRT:
def setup(self):
self.valid_first_name = 'Иван'
self.valid_last_name = 'Иванов'
self.fake_email = Faker().email()
self.fake_password = Faker().password()
self.fake_name = Faker().name()
self.valid_password = 'Qwertyu0'
self.open()
def open(self):
self.driver = webdriver.Chrome('/Users/dmitrijparsin/webdriver/chromedriver_107')
self.driver.get("https://b2c.passport.rt.ru")
time.sleep(10)
def close(self):
self.driver.quit()
def teardown(self):
self.close()
def test_login(self):
button_register = self.driver.find_element(RTRegistrationLocators.LOCATOR_RT_REGISTRATION_BUTTON_REGISTER)
button_register.click()
Ответы (1 шт):
А вы пробовали импортировать класс локаторов?
RTRegistrationLocators
Если да, импортировали ли Вы from selenium.webdriver.common.by import By в файл где хранятся селекторы?
Могу Вам посоветовать канал на ютубе "Art Vlad", постройте грамотный фреймворк, и никогда не столкнетесь с подобными ошибками, успехов Вам! Спасибо!