2017-06-01 132 views
2

我有一個Chrome驅動程序無響應的最小例子。硒在沒有響應的頁面上沒有響應

alert.html:

<html> 
 
     <body> 
 
      <a href="test_alert.html" target="_blank" id="test">Visit Alert test!</a> 
 
     </body> 
 
</html>

test_alert.html:

<html> 
 
    <script type="text/javascript"> 
 
     alert("Hello world"); 
 
    </script> 
 
</html>

我寫了一個基於Python的Selenium腳本來點擊鏈接,然後嘗試接受提醒。但是,點擊鏈接後,Chrome驅動程序沒有響應。

這裏的Python腳本產生這樣的問題:

from selenium import webdriver 
import time 

SHORT_PAUSE = 5 
capabilities = { 
    'chromeOptions': { 
    'androidPackage': 'org.chromium.chrome', 
    } 
} 
driver = webdriver.Remote('http://localhost:9515', capabilities) 
url = "http://10.0.0.173:8888/alert.html" 
driver.get(url) 
time.sleep(SHORT_PAUSE) 


element = driver.find_element_by_id("test") 
element.click() 
print "done clicking" 

# Usually prints: "[u'CDwindow-0', u'CDwindow-1']" 
print driver.window_handles 
time.sleep(SHORT_PAUSE) 
driver.switch_to.window(driver.window_handles[1]) 

# Selenium is unresponsive after this and 
# never prints the below line 
print "current url:", driver.current_url 
alert = driver.switch_to.alert 
print "switched to alert. Text:", alert.text 
alert.accept() 
print "Accepted modal dialog...." 

版本信息:

  • 的Python:2.7.6
  • 硒:3.4.2
  • Chrome的驅動程序: 2.29
  • Chrome版本:58.0.3029.83(在Andro上通過USB連接ID 7.1.1)
  • 主機:Ubuntu的LTS 14.04.5
+0

您可能想要包含Python腳本。 – Paul

+0

@Phani你可以考慮分享你的工作嗎?謝謝 – DebanjanB

+0

@Paul我已經包含了產生問題的Python腳本。 – Phani

回答

0

事實證明,這是現有Chromedriver錯誤:

https://bugs.chromium.org/p/chromedriver/issues/detail?id=833

,直到問題得到固定,我的工作就是使用adb shell命令發送鍵盤輸入,以便在我預計會彈出警告窗口時處理警報。

adb shell input keyevent 61 #Tab key for focus 
adb shell input keyevent 66 #Enter key to deal with the alert 

解除警報後,chromedriver似乎再次正常工作。

注意:如果您使用的是Linux系統,則可以使用xdotool來代替。