在Python中使用Selenium处理模态对话框

在Python中使用Selenium处理模态对话框,python,selenium,Python,Selenium,我正在使用Selenium自动化一个过程,每次有人访问我想要交互的页面时,它都会打开一个模式对话框。我希望能够与主页正确交互,因此我需要一种关闭对话框的方法。然而,我尝试了一些关于处理模态对话框的建议,但它们并没有按应有的方式工作。我可以单击两个按钮关闭对话框,其中一个是: <div class="modal-footer"> <button type="button" class="btn btn-primary" data-dismiss="modal">

我正在使用Selenium自动化一个过程,每次有人访问我想要交互的页面时,它都会打开一个模式对话框。我希望能够与主页正确交互,因此我需要一种关闭对话框的方法。然而,我尝试了一些关于处理模态对话框的建议,但它们并没有按应有的方式工作。我可以单击两个按钮关闭对话框,其中一个是:

  <div class="modal-footer"> 
    <button type="button" class="btn btn-primary" data-dismiss="modal">Fechar</button> 
  </div>
但这并不是关闭对话框。使用:

test = driver.find_element_by_link_text("Fechar")
test.send_keys(Keys.RETURN)
给我以下错误:

no such element: Unable to locate element: {"method":"link text","selector":"Fechar"}.

我还考虑编写一个脚本,使用TAB键在对话框中导航,然后在到达close按钮时按Enter键。但我不知道这是否是处理问题的正确方法,也不知道这是否可以毫无问题地完成。提前感谢。

使用“按链接查找元素”文本方法,您不会找到按钮,而是会找到链接元素(a)

如果您想获得该按钮,可以使用:

driver.find_element_by_css_selector('.modal-footer > button[data-dismiss="modal"]')
driver.find_element_by_css_selector('.modal-footer > button[data-dismiss="modal"]')