【问题标题】:Python+Selenium: Is it possible to lock the browser from manual clicks and inputs?Python+Selenium:是否可以锁定浏览器以防止手动点击和输入?
【发布时间】:2018-03-11 08:10:08
【问题描述】:
我编写了一个 python selenium 代码,它可以自动执行网站上的操作。一旦用户对登录进行身份验证,selenium 就会接管浏览器并执行其操作。一切正常,但是,我注意到如果用户在 selenium 运行时不小心单击了任何链接上的任何内容,代码可能会失败。
有没有办法防止用户手动输入?类似:
br = webdriver.chrome()
br.lock_manual_userinput()
【问题讨论】:
标签:
python
python-2.7
selenium
selenium-webdriver
【解决方案1】:
没有这样的事情。您可以将访问权限有限的机器专用于运行自动化,或者如果您在运行脚本时工作,请小心。
【解决方案2】:
Selenium 纯粹用于自动化重复的手动任务。此时值得一提的是,Selenium 模拟了用户交互。
因此声明一旦用户验证登录,selenium 接管浏览器几乎是推测性的,因为尝试Reconnect Selenium to previous Browsing Session 是不可行的。
现在声明,“如果用户不小心点击任何东西,代码可能会失败” 几乎是预期的,因为 Selenium 需要浏览器 focus。作为任何手动用户交互的结果,Selenium 将失去 焦点 并引发错误。
最后,没有其他方法可以防止手动输入,正如前面提到的,Selenium 模拟用户交互。执行基于Selenium的自动化测试防止用户手动输入的最佳方法是:
- 使用所有必需的硬件和软件配置设置一个测试台。
- 在隔离环境中创建测试台,最好在没有人工干预的测试实验室中创建。
-
自动化只需要不需要人工干预的用例。