【问题标题】:Best method to incorporate a variable in command syntax在命令语法中合并变量的最佳方法
【发布时间】:2021-12-16 08:58:21
【问题描述】:

我正在寻找创建函数的最佳方法,该函数允许我将 args 提供到 Appium 定位器命令中。但为了做到这一点,我需要一种在命令中输入变量的方法。下面是一个基本命令的例子:

WebDriverWait(self.driver,20).until(EC.element_to_be_clickable((By.XPATH, "//XCUIElementTypeButton[@text='Get Started' or @id='get_started']")))

我希望在我的函数中执行以下操作:

  1. @ 方法,可以是各种东西,例如文本或 id。
  2. @方法的具体值,例如'get_started'

我尝试将它分配给一个变量,但这只是抛出无意义的错误,说该元素无法定位。任何帮助将不胜感激!

【问题讨论】:

  • 如果您想这样做正确,则需要为 XPath 使用(或构建)适当的解析器/生成器。如果不存在这样的库,您可能想查看By.XPATH 的可用替代方案。这样做 wrong 的可行性取决于细节——您是否需要每个可能的字符串能够被注入或只处理一个受限制的输入域——通常是那些细节(对于一种方法可以处理所有可能的数据)太宽泛,不适合 Stack Overflow 问题的范围(因此为什么使用库是正确的事情)。

标签: python python-3.x appium


【解决方案1】:

这行得通:

                some_variable = 'text'
                some_text = 'Get Started'                    
                WebDriverWait(self.driver,20).until(EC.element_to_be_clickable((By.XPATH, "//XCUIElementTypeButton[@"+some_variable+"=\""+some_text+"\"]")))

【讨论】:

    猜你喜欢
    • 2019-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-02
    • 1970-01-01
    • 2013-03-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多