【问题标题】:Using Appium and Python for Test Automation with "contains"使用 Appium 和 Python 进行“包含”的测试自动化
【发布时间】:2021-05-09 09:00:03
【问题描述】:

我正在使用 Appium 进行测试自动化。这将在 Windows 机器上运行,我们使用 python 来驱动 Appium。 我能够找到我正在使用的自动化应用程序的主窗口:

ApplicationWindow = self.driver.find_element_by_xpath("//Pane[@ClassName='wcl_manager1']")

然后我需要在 ApplicationWindow 中搜索我需要按下的按钮。我只知道按钮将包含某些文本,但也会有其他文本。如果我确定文本会是什么,那么我可以这样做:

MenuButton = ApplicationWindow.find_elements_by_xpath("//Button[@Name='Hub window']")

但我当然不能。

我查看了 xpath 文档,并认为“包含”部分是我所需要的,但对于我的生活,我无法正确地获取语法。

我尝试了多种语法选项:

find_elements_by_xpath("//Button[contains(name(), 'Hub']")
find_elements_by_xpath("//Button[contains(@Name='Hub']")
find_elements_by_xpath("//Button[contains(@Name, 'Hub']")

但似乎没有一个是灵丹妙药。

谁能指出 Python 和 Appium 的“包含”功能的正确语法?

谢谢!

【问题讨论】:

    标签: python windows automated-tests appium


    【解决方案1】:

    对于 Android,我在我的 elements.yml 文件中使用

    android_hamburger_menu_my_shiny_btn:
      locator: xpath
      selector: //android.widget.Button[contains(@text, 'My Partial Text Here')]
    

    对于 iOS:

    ios_hamburger_menu_my_shiny_btn:
      locator: xpath
      selector: //*[contains(@name, "My Partial Text Here")]
    

    【讨论】:

      【解决方案2】:

      不确定我的问题是怎么回事。我做了一堆测试,发现这是正确的方法:

      MenuButton = ApplicationWindow.find_elements_by_xpath("//TreeItem[contains(@Name, 'Harry')]")

      这看起来与我在上面尝试过的一模一样。

      【讨论】:

        猜你喜欢
        • 2020-06-30
        • 2014-08-03
        • 2014-09-28
        • 2021-10-11
        • 2020-12-07
        • 2012-01-06
        • 2017-08-25
        • 2018-06-06
        • 2020-07-21
        相关资源
        最近更新 更多