在自动化测试套件时,我有一个非常奇怪的行为,当我访问一个网站,点击一个搜索栏,然后寻找某些信息。
我所有的200多个测试都以同样的方式开始,使用完全相同的代码,前177个测试完美通过,但从测试178开始,它在代码行中失败,我找到搜索栏,然后点击它。
对我来说,这毫无意义,但再次,我是相当新的自动化和IT一般,所以我希望你们的人可以给予我一个帮助在这里。
失败的行如下:
WebDriverWait(self.driver, 40).until(EC.presence_of_element_located((coupons_search_bar))).click()
同样,这适用于177个测试,然后在下面的测试中失败。
谢谢!
我在很多方面改变了我进入优惠券搜索栏的方式,但它们对177个第一次测试有效,但对下面的测试失败。
我清理了本地存储和缓存,没有任何变化。
2条答案
按热度按时间zfciruhq1#
理想情况下,要找到并点击clickable元素而不是presence_of_element_located(),你需要为element_to_be_clickable()引入WebDriverWait,你可以使用下面的locator strategies:
*注意:需要添加以下导入:
参考资料
您可以在以下网站中找到关于NoSuchElementException的几个相关讨论:
f4t66c6m2#
如果没有额外的调试细节,脚本在X次之后开始失败的原因有很多。以下是一些常见的:
ElementClickInterceptedException
(other element would receive the click
),直到您首先关闭弹出窗口。EC.presence_of_element_located
交换为element_to_be_clickable
。if
语句,根据可见内容更改脚本。如果上述想法都没有帮助,请使用更多相关信息编辑您的问题,例如添加异常消息,使用的选择器以及可能有助于调试的任何其他细节。