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