[英]Variable in xpath in Python Selenium when calling Class and Function
我有以下课程:
class Sections(BasePage):
CHOOSE_SECTION_SEL = (By.XPATH, "//*[@class='select2-result-label' and (text() = '" + state + "')]")
def choose_section(self, state):
self.click_on_element("choose section", self.CHOOSE_SECTION_SEL)
然后我想这样称呼它,这样我就可以随心所欲地更改变量“状态”,但它显然不起作用:
section = Sections(driver=self.driver)
section.choose_section(state="CALENDAR")
我知道我可以这样做并且它正在工作:
class Sections:
def section(self, state):
driver.find_element_by_xpath("//*[@class='select2-result-label' and (text() = '" + state + "')]").click()
...
choose = Sections()
choose.section(state="CALENDAR")
但是我必须像第一个例子那样做。 有什么想法我必须改变吗?
您可以将xpath表示法更改为以下任一形式:
使用变量:
CHOOSE_SECTION_SEL = (By.XPATH, "//*[@class='select2-result-label' and text()='" + state + "']")
使用%s
CHOOSE_SECTION_SEL = (By.XPATH, "//*[@class='select2-result-label' and text()='%s']"% str(state))
使用{}
CHOOSE_SECTION_SEL = (By.XPATH, "//*[@class='select2-result-label' and text()='{}']".format(str(state)))
你可以像这样实现它:
class Sections(BasePage):
def choose_section(self, state):
self.CHOOSE_SECTION_SEL = (By.XPATH, "//*[@class='select2-result-label' and (text() = '" + state + "')]")
self.click_on_element("choose section", self.CHOOSE_SECTION_SEL)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.