2013-04-11 71 views
3

所有我想要的是關閉一個模態對話框,最好通過執行以下操作:如何使用Webdriver&Python與此模式對話框交互?

browser.find_element_by_link_text("OK").click() 

給出NoSuchElementException: Message: u'The element could not be found'用於確定鏈接文本。

相同的XPath的,當我這樣做:

browser.find_element_by_xpath("//*[@id=\"modal\"]/div/div[2]/div/a").click() 

我懷疑這是因爲我需要把重點對話框上。要做到這一點,我試過了:

for handle in browser.window_handles: 
    browser.switch_to_window(handle) 
    if browser.find_element_by_class_name('popUp123') 
     browser.find_element_by_link_text("OK").click() 

給班級NoSuchElementException: Message: u'The element could not be found'

也試過browser.switch_to_frame(ID OR NAME),但是找不到它作爲一個框架。

請告訴我我錯過了明顯的東西。

相關幀源(總結):

<body id="modal"> 
    <div class="popUp123"> 
    <div class="button"> 
     <div class="centerbutton"> 
      <a href="#" class="close" onclick=parent.close"> 
       <span>OK</span> 
+0

如果錯誤如果您爲可能需要等待元素的代碼添加'time.sleep(2)',則不會出現。 – User 2013-04-11 17:48:51

回答

3

在下面的代碼是用Java中,u可以嘗試使用下面的代碼將其轉換爲Python語法。對不起,因爲我是Webdriver - Java Tester,我無法給你Python代碼。希望這會解決你的要求。

Alert alertDialog = driver.switchTo().alert(); 
//Get the alert text 
String alertText = alertDialog.getText(); 
//Click the OK button on the alert. 
alertDialog.accept(); 

乾杯,

馬赫什

1

這是Python語法

from selenium.webdriver.remote.webdriver import WebDriver 

browser = WebDriver() 

# do other stuff here 

browser.switch_to_alert().accept() 

# continue with other stuff here 

警報API位於selenium.webdriver.common.alert

相關問題