我正在处理一个在弹出窗口中显示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