在我的测试中,我必须单击一个按钮才能将项目添加到购物车。此时会出现一个模型对话框,允许一些选项和链接,其中一个我想点击;查看购物车和结账。
我使用find_element_by查找我的元素的每次尝试都失败并出现NoSuchElementException。无论我如何找到它; ID,类,链接文本等
我尝试在try / catch语句中设置WebDriverWait,看看是否暂停将模型添加到页面会有所帮助,但事实并非如此。我还检查了是否有另一个窗口或框架要切换到,但只有一个窗口。
有没有其他方法可以解决我需要做的事情,或者我可以采取哪些措施来解决这个问题?
以下是Firefox显示HTML的内容。
<div class="summary">
<dl></dl>
<a class="bb-button" href="/shopping/cart">View Cart and Checkout</a>
<div class="continue"></div>
我写的python是:
product_details.addDocumentToCart('Printed Edition')
try:
WebDriverWait(self.driver, 10).until(EC.presence_of_element_located(By.CLASS_NAME, 'bb-button'))
print 'bb-button found'
except:
print 'bb-button not found'
windows = self.driver.window_handles
print 'Windows after: ' + str(len(windows))
element = self.driver.find_element_by_class_name('bb-button')
element.click()
我打印出的信息返回:
找不到added_to_cart-container 和 Windows之后:1
运行时遇到的错误是:
NoSuchElementException:消息:无法找到元素:{“method”:“class name”,“selector”:“bb-button”}
答案 0 :(得分:0)
感谢Mikko,你对pbd.set_trace()的建议我能够发现我的问题确实与我认为被点击的按钮有关但不是。进一步的故障排除显示我的addDocumentToCart()方法点击了错误的元素,所以我的模型没有出现,但没有产生任何错误,这让我相信事情真的没有用。