首页 > 解决方案 > 为什么 Selenium Webdriver 冻结 Windows 窗体应用程序?

问题描述

那里的任何人都可以帮助我解决这个问题。我什至在谷歌上搜索过,但一无所获。我制作了一个 Windows 窗体应用程序来抓取一些数据。问题是当我单击按钮时脚本以无头模式启动并且我正在使用 Chrome Web 驱动程序。然后它冻结了应用程序,它不允许我们在运行脚本时使用应用程序上的其他按钮。

有任何解决方案或任何其他框架或我可以做的事情吗?

标签: c#winformsseleniumselenium-webdriverselenium-chromedriver

解决方案


这与您的应用程序是单线程的事实有关。意味着它执行的所有代码都在单个线程上运行。因此,当您的用户更改 UI 状态时,您无法做一些工作,反之亦然。

一个好的解决方案是在不是您的应用程序用于 UI 的线程上运行“selenium 脚本”(或触发它的例程)。

您可以通过以下方式实现此目的:

永远记住,您的默认执行线程(在 Windows 窗体中)是保持 UI 和应用程序活动的线程。


推荐阅读