如何以编程方式与以标准方式启动的 Web 浏览器中的现有网页进行交互?例如,我导航到特定页面并希望能够运行填充某些编辑或单击某些元素的 Python 脚本。
至少通过主要浏览器的 IAccessible2 应该可以做到这一点,但我没有找到任何指针。换句话说,屏幕阅读器是如何做到的?还有一个额外的问题,有 Python 库吗?
编辑:我正在寻找的不仅仅是用户输入模拟。我想至少以编程方式读取 DOM,尽可能写。到目前为止,我已经查看了NVDA中非常低级和复杂的代码。有什么更容易的吗?
如何以编程方式与以标准方式启动的 Web 浏览器中的现有网页进行交互?例如,我导航到特定页面并希望能够运行填充某些编辑或单击某些元素的 Python 脚本。
至少通过主要浏览器的 IAccessible2 应该可以做到这一点,但我没有找到任何指针。换句话说,屏幕阅读器是如何做到的?还有一个额外的问题,有 Python 库吗?
编辑:我正在寻找的不仅仅是用户输入模拟。我想至少以编程方式读取 DOM,尽可能写。到目前为止,我已经查看了NVDA中非常低级和复杂的代码。有什么更容易的吗?
如何以编程方式与以标准方式启动的 Web 浏览器中的现有网页进行交互?例如,我导航到特定页面并希望能够运行填充某些编辑或单击某些元素的 Python 脚本。
如果您必须在浏览器发生时直观地看到它,答案是键盘/鼠标宏。您可以为您的操作系统搜索宏程序。
但您很可能正在寻找无头浏览器,例如 PhantomJS、HtmlUnit、TrifleJS、Splash 和 SimpleBrowser
退房 - https://saucelabs.com/blog/headless-browser-testing-101
当您提到“在以标准方式启动的 Web 浏览器中与现有网页交互”时,您指的是 DOM(文档对象模型)。
许多 QA 环境正在对尚未被浏览器渲染到 DOM 的代码运行测试脚本(当您使用浏览器工具检查页面时会看到DOM)。当您使用无头浏览器时,它会创建 DOM,然后运行所有测试,就好像人类正在点击一样,而无需直观地查看它发生的情况。
见 - https://css-tricks.com/dom/
换句话说,屏幕阅读器是如何做到的?还有一个额外的问题,有 Python 库吗?
屏幕阅读器在低级别与 DOM 交互。我不知道是否有 Python 库。除非您正在构建一个像屏幕阅读器那样与浏览器交互的桌面应用程序,否则这很可能是矫枉过正。
编辑...
我做了更多的挖掘,发现这篇文章更详细地解释了屏幕阅读器如何与浏览器/dom 交互。
此外,还有一个用于操作 DOM的python API ,这个库似乎很受欢迎。