gpt4 book ai didi

python - 无法使用 Appium/Python 通过 XPATH 找到元素

转载 作者:行者123 更新时间:2023-12-01 08:38:03 24 4
gpt4 key购买 nike

我正在自动化一个流程,其中包括从产品列表中点击产品名称(Xamarin ListView)以进入产品详细信息页面。

我已经在我的ListView中设置了:

AutomationProperties.IsInAccessibleTree="false"

并在产品名称标签中:

AutomationId="ProductName"

有趣的是,当使用 Appium Desktop UI 检查工具时,我可以看到 XPATH,如果我记录对它的点击,它实际上可以工作,我得到这个脚本:

MobileElement el1 = (MobileElement) driver.findElementByXPath("(//XCUIElementTypeStaticText[@name=\"ProductName\"])[1]");
el1.click();

为此,我知道 XPATH 存在并且对 Appium 可见。它适用于检查工具。

现在,当我将其翻译为 Python 时,出现了问题:

el1 = self.driver.find_element_by_xpath("(//XCUIElementTypeStaticText[@name=\"ProductName\"])[1]")

我收到此错误消息:

el = self.driver.find_element_by_xpath(element_query) 文件“/usr/local/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py”,第 393 行,在 find_element_by_xpath 中 返回 self.find_element(by=By.XPATH, value=xpath) 文件“/usr/local/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py”,第 966 行,在 find_element 中 '值': 值})['值'] 文件“/usr/local/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py”,第 320 行,执行中 self.error_handler.check_response(响应) 文件“/Users/joseclua/Library/Python/3.7/lib/python/site-packages/appium/webdriver/errorhandler.py”,第 29 行,在 check_response 中 提高wde 文件“/Users/joseclua/Library/Python/3.7/lib/python/site-packages/appium/webdriver/errorhandler.py”,第 24 行,在 check_response 中 super(MobileErrorHandler, self).check_response(响应) 文件“/usr/local/lib/python3.7/site-packages/selenium/webdriver/remote/errorhandler.py”,第 242 行,在 check_response 中 引发异常类(消息、屏幕、堆栈跟踪) selenium.common.exceptions.NoSuchElementException:消息:使用给定的搜索参数无法在页面上找到元素。

最佳答案

感谢 Suban 的洞察力,我能够点击列表元素,并避免使用不推荐的 XPath。

这是我现在在 iOS 上运行的代码。我还需要在 Android 中进行测试。

def list_item_tap(self, el_name):
print("list_item_tap {0}", el_name)
li = self.driver.find_elements_by_accessibility_id(el_name)
print("list items: {0}", len(li))
if len(li) > 0:
el = li[0]
time.sleep(2)
el.click()

如果没有 sleep ,点击似乎会失败。

谢谢苏类

关于python - 无法使用 Appium/Python 通过 XPATH 找到元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53631139/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com