Как параметризовать xpath и анализировать его как текст? - PullRequest
0 голосов
/ 02 июля 2018

У меня есть файл Python, Base.Py

def provideElectricJobDetails(self):
        self.ui.driver.find_element_by_name("Title").send_keys("Test")
        self.ui.driver.find_element_by_xpath("//span[contains(text(),'Select AOR...')]").click()
        self.ui.sleep(2)
        self.ui.driver.find_element_by_xpath("//li[contains(text(),'Cheyenne')]").click()
        self.ui.sleep(2)
        self.ui.driver.find_element_by_xpath("//span[contains(text(),'Submit')]").click()

И еще один файл python, CreateNew.Py

def testCreateNewOtherJob(self):
        self.ui.common.clickNavbarNewJob()
        self.ui.jobs.selectServiceType('Electric')
        self.ui.jobs.selectJobType('Other')
        self.ui.jobs.ProvideElectricJobDetails()

Мой вопрос: вместо жесткого кодирования в Base.Py как ("//span[contains(text(),'Submit')]"). Как я могу разобрать его как текстовый формат, чтобы я мог вызвать в CreateNew.Py как

self.ui.jobs.selectButton("Submit")

1 Ответ

0 голосов
/ 02 июля 2018

Если я правильно понял, вы хотите что-то вроде этого:

def selectButton(name):
    self.ui.driver.find_element_by_xpath("//span[contains(text(),'" + name + "')]").click()


def testCreateNewOtherJob(self):
    self.ui.jobs.selectButton("Submit") # will click on 'Submit' button
    self.ui.jobs.selectButton("Select AOR...") # will click on 'Select AOR...' button
...