我正在處理一個在彈出窗口中顯示CAPTCHA和其他一些東西的腳本。我正在爲FireFox編寫腳本。是否有可能我提供的值,並點擊提交按鈕腳本可以恢復操作?我猜想,某種無限循環?Python Selenium:如何讓自動化腳本中的人機交互?
0
A
回答
1
您可以等待提交按鈕被用戶點擊:
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
# load the page
driver.get("https://www.google.com/recaptcha/api2/demo")
# get the submit button
bt_submit = driver.find_element_by_css_selector("[type=submit]")
# wait for the user to click the submit button (check every 1s with a 1000s timeout)
WebDriverWait(driver, timeout=1000, poll_frequency=1) \
.until(EC.staleness_of(bt_submit))
print "submitted"
+0
抱歉,延遲響應。我受到了偏離,並且忙於其他事情。它像Charm一樣工作 – Volatil3
0
我相信你問的是如果有可能讓你的硒腳本暫停人類交互,不能完全自動化。
有幾種方法可以做到這一點:
容易,但哈克感覺:
在你的Python腳本,把
import pdb
pdb.set_trace()
在要暫停對人的地步。這將導致python應用程序下降到調試器。當人類完成他們的事情時,他們可以鍵入c並按回車繼續運行硒腳本。
略顯不舒服的感覺(對人類來說更容易)。
,在您想要把暫停的點,假設用戶提交的東西,你可以(在頂部有一個import time
)做這樣的事情:
for _ in xrange(100): # or loop forever, but this will allow it to timeout if the user falls asleep or whatever
if driver.get_current_url.find("captcha") == -1:
break
time.sleep(6) # wait 6 seconds which means the user has 10 minutes before timeout occurs
更優雅的方式被留作練習對於讀者(我知道有一種方法你應該可以不必等待,但我沒有用太久)
相關問題
- 1. 我們如何自動化Python腳本中的用戶交互
- 2. 如何自動化的幾個相互依存的Python腳本
- 3. Python Selenium自動化
- 4. 如何自動化自動化我的Python腳本?
- 5. 如何在shell腳本中運行交互式python腳本?
- 6. 與pexpect中的python腳本交互
- 7. 自動化Python腳本
- 8. 自動化Python腳本
- 9. 如何讓groovysh在執行腳本後進入交互模式?
- 10. Python,PHP或哪種腳本語言最適合自動化Web交互任務?
- 11. Python腳本自動與fdisk進行交互提示
- 12. 人機交互與交互設計
- 13. 如何檢查Python腳本是否以交互方式啓動?
- 14. 如何使用Python pexpect模塊自動化shell交互命令
- 15. 如何通過腳本/自動化與CakePHP模型進行交互?
- 16. 如何編寫自動交互式shell腳本?
- 17. python腳本的Matplotlib交互部件
- 18. 運行交互的shell腳本在python
- 19. 自動開機啓動python腳本(RPI)
- 20. 如何確保我的網站可以阻止自動化腳本,機器人?
- 21. 交易所自動化腳本
- 22. 如何在交互式shell中加載python腳本
- 23. python中的Firefox + Selenium:如何交互式獲取元素html?
- 24. 來自Selenium Python的調用腳本
- 25. 異步交互式Python腳本
- 26. Python子進程:與shell腳本交互
- 27. 如何與較長的python腳本進行交互?
- 28. 如何在R中創建交互式腳本來簡化/部分自動化數據探索部分?
- 29. 如何在Selenium IDE中自動化DatePicker?
- 30. 如何在Python中自動化交互式控制檯應用程序?
什麼樣的操作?提供更多詳細信息 – Andersson
我認爲您可以使用Selenium等待等待點擊提交按鈕後發生的事情,例如,加載動畫或消息。 – Buaban
@Andersson像訪問鏈接等操作 – Volatil3