2016-06-11 43 views
2

我正在使用Selenium來自動化一個進程,並且我想要進行交互的頁面在每次有人訪問它時打開模態對話框。我希望能夠正確地與主頁面交互,所以我需要一種方法來關閉對話框。不過,我已經嘗試了一些處理模態對話框的建議,但他們不應該像他們應該那樣工作。有兩個按鈕,我可以點擊關閉對話框,其中之一是:在Python中使用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.click() 

但是,這是不關閉對話框。使用:

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鍵在對話框中導航,然後按Enter鍵的到達關閉按鈕時。但我不知道這是否是正確的方式來處理問題,如果這可以沒有問題地完成。提前致謝。

回答

2

使用find_element_by_link_text方法,您不會找到一個按鈕,您會發現一個鏈接元素(a)。 Reference

如果你想獲得該按鈕,你可以使用:

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