Я создаю фреймворк, используя Selenium и Python.
Моя платформа, управляемая данными, должна состоять (пока) из 3 файлов:
1) Config.py have class Config() that have all the nessesary methods such as:
def setUp() -
def tearDown()
def click()
def send_keys()
2) data.py - with all data
3) test.py - with all of the steps
В настоящее время я работаю над методом click ().
Я хочу передать 2 параметра этому методу, он будет использовать slice ()
чтобы определить, какие локаторы я использую, и нажмите
соответственно. К сожалению, независимо от того, что я делаю - это держит
бросая мне некоторые ошибки.
config.py:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import NoSuchElementException
from selenium.common.exceptions import NoAlertPresentException
class Actions(object):
def __init__(self, driver):
self.driver = driver
def setUp(self):
self.driver = webdriver.Chrome()
self.driver.implicitly_wait(30)
def tearDown(self):
self.driver.quit()
def click(self, elemLocator, elemValue):
elp = elemLocator
flp = slice(0,2)
if elp[flp] == 'id':
try:
self.driver.find_element_by_id(elemValue).click()
except:
pass
elif elp[flp] == 'xp':
try:
self.driver.find_element_by_xpath(elemValue).click()
except:
pass
elif elp[flp] == 'li':
try:
self.driver.find_element_by_link_text(elemValue).click()
except:
pass
elif elp[flp] == 'na':
try:
self.driver.find_element_by_name(elemValue).click()
except:
pass
elif elp[flp] == 'cs':
try:
self.driver.find_element_by_css_selector(elemValue).click()
except:
pass
elif elp[flp] == 'pa':
try:
self.driver.find_element_by_partial_link_text(elemValue).click()
except:
pass
elif elp[flp] == 'ta':
try:
self.driver.find_element_by_tag_name(elemValue).click()
except:
pass
elif elp[flp] == 'cl':
try:
self.driver.find_element_by_class_name(elemValue).click()
except:
pass
def send_keys(self):
pass
test.py:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import NoSuchElementException
from selenium.common.exceptions import NoAlertPresentException
from Setup import Actions
action = Actions()
action.setUp()
Сообщение об ошибке:
Traceback (most recent call last):
File "/Users/a./Desktop/Automation_Work/correct_PPLS/oop/Test.py", line 9, in <module>
action = Actions()
TypeError: __init__() takes exactly 2 arguments (1 given)
[Finished in 0.153s]