2016-12-05 81 views
0

我在一个项目中为我正在为此工作的公司制作模块化行为驱动框架。在制作“用户接受警报”这一步骤的模块化方法时,当我测试它并出现预期警报框时,它会自动关闭,因此显示“NoAlertPresentException:消息:没有警报存在”异常。** Python Selenium Behave **在进入下一个步骤后自动关闭警报框

我迄今所做的这个代码:

def acceptalert(): 
    alert = driver.switch_to.alert 
    alert.accept() 
    driver.switch_to.parent_frame() 

这段代码的工作,因为我有那些在我纳入警告框关闭模块。唯一的问题就是当我尝试在我的框架中将其作为独立模块时。我已经完成了这个研究,但是我真的从未得到过我的问题。我希望在这里能有人能帮助我。非常感谢你。

+0

那么你的代码有什么问题?不清楚是什么问题......在你接受它之前有时会关闭alert,所以你会得到'NoAlertPresentException'? – Andersson

回答

0

找到了答案。谢谢。我实现了“用户点击”按钮的步骤,其中是与一系列xpath匹配的按钮的值,如果xpath返回零匹配,则会获取每个内部可用的iframe和循环。当XPath的仍返回零个匹配,那么它切换回主框架这个和平的代码:

driver.switch_to.parent_frame() 

与这一个副作用是它会解除警报框。我的问题解决了。感谢大家。

+0

“用户点击** button_name **”,我不知道* <* and *> *是禁止的。 –