使用Python和Selenium我无法在叠加模型

时间:2015-07-09 17:24:06

标签: python selenium

在我的测试中,我必须单击一个按钮才能将项目添加到购物车。此时会出现一个模型对话框,允许一些选项和链接,其中一个我想点击;查看购物车和结账。

我使用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”}

1 个答案:

答案 0 :(得分:0)

感谢Mikko,你对pbd.set_trace()的建议我能够发现我的问题确实与我认为被点击的按钮有关但不是。进一步的故障排除显示我的addDocumentToCart()方法点击了错误的元素,所以我的模型没有出现,但没有产生任何错误,这让我相信事情真的没有用。