【发布时间】:2023-02-01 01:14:08
【问题描述】:
我有一段时间有这个问题,但从未对此做过任何事情,在为 UI 测试映射某些元素时,我有时会遇到返回 2 个相同结果的元素。
我们过去通过使用findelements 然后使用索引 [1] 解决了这个问题
但是我仍然不明白为什么当我在应该定位的代码中只能看到 1 个元素时它返回 2 个元素。
示例如下,您可以在下面看到此用户名字段框
如果我使用一些 xpath 之类的
//input[@name='username']
我只希望得到 1 个元素作为回报,但使用工具 Chropath 我可以看到我得到 2 个元素作为回报
这些元素看起来相同,一个没有隐藏等等。 我一直不明白为什么会这样,因为如果我使用 findelement。我收到一个元素不可交互错误,因为我猜驱动程序无法决定使用哪个元素?或者他们互相妨碍。
所以我一直使用的解决方法是
return self.browser.find_elements(by=By.XPATH, value="//input[@name='username']")[1]
当我实际上应该能够使用
return self.browser.find_element(by=By.XPATH, value="//input[@name='username']")
任何有助于理解为什么会这样的帮助将不胜感激
【问题讨论】:
-
你能提供网址吗?谢谢
-
不幸的是,我不能将 url 作为其内部共享,但我只是想知道其他软件测试人员是否遇到过这个问题。