python - 调用类和函数时Python Selenium中xpath中的变量
问题描述
我有以下课程:
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)
推荐阅读
- python-2.7 - 如何使用子字符串匹配从python列表中删除项目
- c# - 在锁定的 Win10 机器上运行应用程序
- r - 错误:绘制图形时的 Na/NaN 参数
- android - SoundPool - 声音文件中的什么位置
- css - 如何让 CSS IntelliSense 在 Nuxt 项目上工作?
- java - 单击JButton时出现特定颜色时的JAVA增量计数器
- python - 创建具有相同索引的新系列
- python - 'Tensor' 对象没有属性 '_keras_history' Keras 没有 Tensorflow 张量
- reactjs - 使用 React.js 的 Chrome 扩展程序导致“清单文件丢失或无法读取”错误
- c# - C# android xamarin 蓝牙新设备